1.23总结

1.23总结,第1张

1.23总结

1.早上两个半小时

完成了二叉树、并查集、快排题组的修复公路题。

P1111修复公路

P1111 修复公路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

思路

先将时间进行升序排列,然后从头开始遍历,如果到某一组数据的时候,树的结点个数与村子树相同时,这组数据的时间就是最短时间,如果到最后树的结点个数仍不等于村子数,就输出-1。

代码实现

#include
typedef 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是本体克隆的次数。

代码实现

#include
int 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[]数组里的。

代码实现

#include
int 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.晚上两个小时。

就答辩,看了自己一周以来刷的题目,以及记的笔记,写的每日总结。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5711556.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-17
下一篇2022-12-17

发表评论

登录后才能评论

评论列表(0条)

    保存