上午
学习英语(了解四级考试的每个部分,百词斩100个单词,写了3部分高频词汇。。。)2h
下午和晚上刷题加学知识5.5h 写总结1.5h
知识:bfs结合队列使用,看了再解炸d人,宝岛探险,代码明天补上。
刷了洛谷3个题,vj4个题,下面是其中的几个题
①P2404 自然数的拆分问题 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
我直接摆出来了(oh,no),没用搜索写哈哈。
AC代码:
#includeint n; int main() { scanf("%d",&n); if(n==1)printf("n"); else if(n==2)printf("1+1n"); else if(n==3)printf("1+1+1n1+2n"); else if(n==4)printf("1+1+1+1n1+1+2n1+3n2+2n"); else if(n==5)printf("1+1+1+1+1n1+1+1+2n1+1+3n1+2+2n1+4n2+3n"); else if(n==6)printf("1+1+1+1+1+1n1+1+1+1+2n1+1+1+3n1+1+2+2n1+1+4n1+2+3n1+5n2+2+2n2+4n3+3n"); else if(n==7)printf("1+1+1+1+1+1+1n1+1+1+1+1+2n1+1+1+1+3n1+1+1+2+2n1+1+1+4n1+1+2+3n1+1+5n1+2+2+2n1+2+4n1+3+3n1+6n2+2+3n2+5n3+4n"); else printf("1+1+1+1+1+1+1+1n1+1+1+1+1+1+2n1+1+1+1+1+3n1+1+1+1+2+2n1+1+1+1+4n1+1+1+2+3n1+1+1+5n1+1+2+2+2n1+1+2+4n1+1+3+3n1+1+6n1+2+2+3n1+2+5n1+3+4n1+7n2+2+2+2n2+2+4n2+3+3n2+6n3+5n4+4n"); return 0; }
②P1219 [USACO1.5]八皇后 Checker Challenge - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路:用深搜加回溯,先分别为行,列,主对角线,副对角线建立一个数组,为的就是在放皇后的时候进行标记,主要就是副对角线的关系(这我开始没看懂,看了一下题解才知道),标记完之后要记得取消标记。
注:对于第二行的那个皇后来说,它的右斜线上的点,(1,3),(3,5),(4,6),我们可以看出,它的y-x是个定值2,但是看第四行的皇后的右斜线上的点(5,2),它的y-x是个负定值,而数组是不能存在负数下标的,所以把右斜线的数平移n个单位,总数组关系没变,
AC代码:
#includeint n,sum=0; int book[1010],col[1010];//行 列 int a[1010],b[1010];//主对角线和副对角线 void dfs(int x) { if(x>n) { sum++;//满足条件,增加 if(sum<4)//输出前三个满足条件的 { printf("%d",book[1]); for(int i=2;i<=n;i++) printf(" %d",book[i]); printf("n"); } return; } for(int k=1;k<=n;k++) { //判断列,主对角线,副对角线都没有 if(col[k]==0&&a[x+k]==0&&b[x-k+n]==0) { book[x]=k;//放上去,第x行第k个 col[k]=1;a[x+k]=1;b[x-k+n]=1;//标记 dfs(x+1);//继续推 col[k]=0;a[x+k]=0;b[x-k+n]=0;//取消标记,回溯 } } return ; } int main() { scanf("%d",&n); dfs(1);//从这开始 printf("%d",sum); }
③
我直接用的c++里的队列函数和栈函数 ,很简单
AC代码:
#include#include #include using namespace std; int main() { stack st; int n,t,x; cin>>n; while(n--) { cin>>t; if(t==1) { cin>>x; st.push(x); } else if(t==2) { if(st.empty()==true) cout<<"empty"< #include#include #include using namespace std; int main() { queue que; int n,t,x; cin>>n; while(n--) { cin>>t; if(t==1) { cin>>x; que.push(x); } else if(t==2) { if(que.empty()==true) cout<<"empty"< 总计:8h
明日计划:
学习四级英语:
刷题
啊呀!一天又结束了,爬了爬了,学习很快lo,加油坚持努力!✌✌✌
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)