zoukankan      html  css  js  c++  java
  • Codeforces Round #395 (Div. 2)

    今天自己模拟了一套题,只写出两道来,第三道时间到了过了几分钟才写出来,啊,太菜了。

    A. Taymyr is calling you

    水题,问你在z范围内  两个序列  n,2*n,3*n......  和 m,2*m,3*m.....有多少个是一样的。

    #include<bits/stdc++.h>
    using namespace std;
    int n,m,z;
    int main()
    {
        cin>>n>>m>>z;
        int gcd=__gcd(n,m);
        int now=n*m/gcd;
        int ans=0;
        int res=now;
        while(res<=z)
        {
            ans++;
            res+=now;
        }
        cout<<ans<<endl;
        return 0;
    }
    View Code

    B. Timofey and cubes

    题目大意:给你n个数,进行(n/2)次操作,每次操作将制定区间里的数交换,给你交换后的

    让你求原来的。

    思路:水题,奇偶讨论。

    #include<bits/stdc++.h>
    const int N=2*1e5+5;
    using namespace std;
    int a[N];
    int n;
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++) scanf("%d",&a[i]);
        int mid=n/2;
        int i=1,j=n;
        bool flag=true;
        while(i<=j)
        {
            if(flag)
            {
                int t=a[i];
                a[i]=a[j];
                a[j]=t;
            }
            flag=!flag;
            i++,j--;
        }
        for(int i=1;i<=n;i++) printf("%d%c",a[i],i==n? '
    ':' ');
        return 0;
    }
    View Code

    C. Timofey and a tree

    题目大意:给你一颗树,每个节点都有一个颜色,让你挑选一个节点当做整棵树的根,满足所有

    子树中节点的颜色都是一样的。如果没有输出NO 否则输入YES 且输出选择的节点。

    思路:刚开始的思路是我觉得这棵树中的颜色不能超过 3 种,后来一想这种想法好智障啊,明显

    不对,后来枚举树根每个都dfs一下超时,结束后想我随便找一个点dfs找到两个相邻的颜色不同的

    点,那么这两个点中间肯定有一个要当做树根的,否则不成立。这样只要dfs两次就行了。

    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e5+5;
    vector<int> e[N];
    int c[N],item1,item2,n;
    map<int,bool> mp;
    bool flag;
    void dfs1(int u,int pre)
    {
        //printf("%d
    ",u);
        if(pre!=-1 && c[u]!=c[pre])
        {
            item1=u;
            item2=pre;
            return;
        }
        for(int i=0;i<e[u].size();i++)
        {
            int to=e[u][i];
            if(to!=pre) dfs1(to,u);
            if(item1!=-1) return;
        }
    }
    void dfs(int u,int pre,int item)
    {
       // printf("%d %d %d**
    ",u,pre,item);
        if(pre!=item && pre!=-1 && c[u]!=c[pre])
        {
            flag=false;
            return;
        }
        for(int i=0;i<e[u].size();i++)
        {
            int to=e[u][i];
            if(to!=pre) dfs(to,u,item);
            if(!flag) return;
        }
    }
    int main()
    {
        cin>>n;
        for(int i=1;i<n;i++)
        {
            int f,t;
            scanf("%d%d",&f,&t);
            e[f].push_back(t);
            e[t].push_back(f);
        }
        int cnt=0;
        for(int i=1;i<=n;i++) scanf("%d",&c[i]);
        item1=-1,item2=-1;
        dfs1(1,-1);
        if(item1==-1)
        {
            puts("YES");
            puts("1");
            return 0;
        }
        flag=true;
        dfs(item1,-1,item1);
        if(flag)
        {
            puts("YES");
            printf("%d
    ",item1);
            return 0;
        }
        flag=true;
        dfs(item2,-1,item2);
        if(flag)
        {
            puts("YES");
            printf("%d
    ",item2);
            return 0;
        }
        puts("NO");
        return 0;
    }
    View Code

    D. Timofey and rectangles

    题目大意:给你n个矩形,且矩形的边长为奇数,任意两个矩形都不相交,最多相邻,现在让你给这些矩形上色,

    一种4种颜色,相邻的矩形颜色不能相等,问你有没有这样的方案,如果有则输出。

    思路:赤裸裸的脑洞题,专门碾压我这种低智商的,这题最关键的是矩形的边长是奇数,虽然我知道,但是

    我还是不会写QAQ。 

    首先,四个矩形不可能两两互相相邻,所以结论一定是YES

    然后,我们考虑矩形的左下角的顶点,如果 x 和 y 的值都为奇数,因为边长是奇数,所以这个矩形不可能和

    另一个左下角坐标都为奇数的矩形相邻。所以我们给这类矩形染色 1  。

    其他三种同理。

    #include<bits/stdc++.h>
    using namespace std;
    const int N=5*1e5+5;
    int n,vis[N],m=1e9;
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            int x1,y1,x2,y2;
            scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
            if((x1+m)%2 && (y1+m)%2) vis[i]=1;
            else if((x1+m)%2) vis[i]=2;
            else if((y1+m)%2) vis[i]=3;
            else vis[i]=4;
        }
        cout<<"YES"<<endl;
        for(int i=1;i<=n;i++) printf("%d
    ",vis[i]);
        return 0;
    }
    View Code
  • 相关阅读:
    Power BI for Office 365(八)共享查询
    Power BI for Office 365(七) Power BI站点
    Power BI for Office 365(六)Power Map简介
    Power BI for Office 365(五)Power View第二部分
    Power BI for Office 365(四)Power View第一部分
    Power BI for Office 365(三)Power Pivot
    Power BI for Office 365(二)Power Query
    java 继承、重载、重写与多态
    Android 热修复方案Tinker(一) Application改造
    阿里最新热修复Sophix与QQ超级补丁和Tinker的实现与总结
  • 原文地址:https://www.cnblogs.com/CJLHY/p/7259286.html
Copyright © 2011-2022 走看看