
1.早上两个半小时
完成了二叉树、并查集、快排题组的修复公路题。
P1111修复公路
P1111 修复公路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路
先将时间进行升序排列,然后从头开始遍历,如果到某一组数据的时候,树的结点个数与村子树相同时,这组数据的时间就是最短时间,如果到最后树的结点个数仍不等于村子数,就输出-1。
代码实现
#includetypedef struct node//因为要总体进行交换,所以最好用结构体数组存数据 { int x,y,t; } Node; Node a[100001]; int n,m,parent[1001],sum; int find(int u)//找根结点 { if(u!=parent[u]) parent[u]=find(parent[u]); return parent[u]; } void quicksort(int left,int right)//快排,对时间进行升序排列 { if(left>right) return; int i=left; int j=right; Node x=a[left]; while(i =x.t&&i 2.下午三个半小时
完成了第二周测试的两个题目。
CF922A Cloning Toys
CF922A Cloning Toys - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路
就是根据两个的关系式x=i*2+j与y=j+1,x是克隆体的数量,y是本体的数量,i是克隆体的克隆的次数,j是本体克隆的次数。
代码实现
#includeint main() { long long x,y; scanf("%lld %lld",&x,&y); if((x-y+1)%2==0&&x>=1&&y>=2&&(x-y)>=-1)//根据本体的数量的关系式和克隆体的数量的关系式可以得到 printf("Yes"); else if(x==0&&y==1) printf("Yes"); else if(y==0) printf("No"); else printf("No"); return 0; } P7939 [B1]Alice Wins!(easy version)
P7939 [B1] Alice Wins! (easy version) - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路
因为题目规定可以改a[],b[]数组里面个n个,所以就前n个先改a[]数组里的,后n个改b[]数组里的。
代码实现
#includeint main() { int t; scanf("%d",&t); while(t--) { int n,a[200001],b[200001],sum=0,ans=0; scanf("%d",&n); for(int i=0;i<2*n;i++) scanf("%d",&a[i]); for(int i=0;i<2*n;i++) scanf("%d",&b[i]); for(int i=0;i 3.晚上两个小时。
就答辩,看了自己一周以来刷的题目,以及记的笔记,写的每日总结。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)