上午:
[1]听四级网课
[2]记单词
[3]洛谷:perket
#include#include int acid=1,salt=0; int s[20],b[20]; int n; int book[100]={0}; int absdifference=1e9; void dfs(int c) { //这个好像有没有都无所谓 // if(c>n-1) // { // printf("#######n"); // return; // } int i; //注意它的每次都是到n-1结束 for(i=0; i abs(acid-salt)) absdifference=abs(acid-salt); //printf("%d %dn",acid,salt); dfs(c+1); //回溯 acid/=s[i]; salt-=b[i]; book[i]=0; } return; } int main() { scanf("%d",&n); for(int i=0; i 下午:
[4]看了部分回溯算法的PDF
[5]洛谷:迷宫(出现了很多问题来的)#includeint cout=0; int dir[4][2]= {{1,0},{-1,0},{0,1},{0,-1}}; int sx,sy,fx,fy; int N,M,T; //当地图为0时就可以通行,为1时则为障碍不可通行 int map[100][100]={0}; //因为题目的要求就是“每个方格最多经过1次” //这个二维数组用来记录这个(x,y)这个点是否走过 int way[100][100]={0}; void dfs(int x,int y) { //到了终点,就让计数器cout+1(即,找到了一种方法) if(x==fx&&y==fy) { cout++; return; } for(int i=0; i<4; i++) { int next_x=x+dir[i][0]; int next_y=y+dir[i][1]; //在这个迷宫里面且没有碰到障碍才继续搜索 if(next_x>0&&next_x<=N&&next_y>0&&next_y<=M&&map[next_x][next_y]!=1&&map[next_x][next_y]!=2) { //要注意使下一个(x,y)被标记的代码的位置 map[next_x][next_y]=2; dfs(next_x,next_y);zha //这玩意不是回溯 // next_x=x-dir[i][0]; // next_y=y-dir[i][1]; map[next_x][next_y]=0; } } return; } int main() { scanf("%d %d %d",&N,&M,&T); //起点和终点的坐标 scanf("%d %d %d %d",&sx,&sy,&fx,&fy); int Tx,Ty; for(int i=0; i 晚上:
洛谷:单词方阵(无果)



