zoukankan      html  css  js  c++  java
  • 【#254_DIV2】-A B C

    题目链接:http://codeforces.com/contest/445

    解题报告:

    俄国人今天不知道为什么九点钟就比赛了。仅仅过了两道题,第三题全然没思路,有时间单独去刷第三题吧,看起来非常难

    A - DZY Loves Chessboard

    太水了。

    直接W、B错开填,顺便先抹上“ - ” 就完了

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    
    char grid[120][120],ans[120][120];
    
    int main()
    {
        int n,m,i,j;
        cin>>n>>m;
        for(i=0;i<n;i++)
        {
            scanf("%s",grid[i]);
        }
        for(i=0;i<n;i++)
        {
            for(j=0;j<m;j++)
            {
                if(grid[i][j] == '-') {ans[i][j] = '-'; continue;}
                if(i%2 == 0)
                {
                    if(j%2 ==0) ans[i][j] = 'W';
                    else
                        ans[i][j] = 'B';
                }
                else
                {
                    if(j%2 ==0) ans[i][j] = 'B';
                    else
                        ans[i][j] = 'W';
                }
            }
        }
        for(i=0;i<n;i++) printf("%s
    ",ans[i]);
        return 0;
    }
    


    B -DZY Loves Chemistry

    并查集直接搞,答案是 2 的 (n - m)次幂。

    n 是药品种类数,m 是并查集并出来的集合的个数。

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include <algorithm>
    using namespace std;
    typedef unsigned long long ll;
    
    int arr[55];
    
    int find(int x)
    {
        return arr[x]==x?x:find(arr[x]);
    }
    
    void mer(int a,int b)
    {
        int fa,fb;
        fa=find(a);
        fb=find(b);
        if(fa!= fb) arr[fa]=fb;
    }
    
    ll p(int x,int y)
    {
        ll ans = 1;
        for(int i=1;i<=y;i++)
            ans *= x;
        return ans;
    }
    
    int main()
    {
        int i,j,n,m,from,to;
        cin>>n>>m;
        for(i=1;i<=n;i++) arr[i] = i;
        while(m--)
        {
            scanf("%d%d",&from,&to);
            mer(from,to);
        }
        //for(i=1;i<=n;i++) cout<<arr[i]<<" "; cout<<endl;
        int t=0;
        for(i=1;i<=n;i++)
        {
            if(arr[i]==i) t++;
        }
        ll ans = p(2,n-t);
    
        cout<<ans<<endl;
        return 0;
    }
    


    C - DZY Loves Physics

    去看这道题的AC代码了。,,我擦,,,不该放弃这题的。。。

    哈哈哈。。

    捶地笑,。。事实上就是。

    仅仅剩两个点了。!!

    。!!

    。!!

    !。!!

    !。!

    !!

    不信你拿这个代码去试第三组数据,发现没有!

    int main()
    {
        freopen("input.txt","r",stdin);
        int n,m,c,from,to,i;
        cin>>n>>m;
        for(i=1;i<=n;i++) cin>>val[i];
        while(m--)
        {
            cin>>from>>to>>c;
            cout<<(val[from]+val[to])/c<<endl;
        }
        return 0;
    }
    

    完整的AC代码例如以下:

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    using namespace std;
    
    double val[550];
    
    int main()
    {
        //freopen("input.txt","r",stdin);
        int n,m,c,from,to,i;
        cin>>n>>m;
        for(i=1;i<=n;i++) cin>>val[i];
        double ans = 0;
        while(m--)
        {
            cin>>from>>to>>c;
            ans = max(ans,(val[from]+val[to])/c);
        }
        printf("%.12f
    ",ans);
        return 0;
    }
    


  • 相关阅读:
    003_&#x和ASCII的关系及URL中的中文转义
    001_机器学习的Hello world之MNIST手写数字识别模型
    Appnium安装-Mac平台
    Code Review 规范
    Spring AOP-xml配置
    JTLParser-linux上jmeter的jtl文件二次分析
    测试覆盖率Emma工具使用
    jmeter之java请求
    jmeter测试总结
    jstat监控gc情况
  • 原文地址:https://www.cnblogs.com/mthoutai/p/6729200.html
Copyright © 2011-2022 走看看