zoukankan      html  css  js  c++  java
  • zoj 3757&&3758

    3757一个模拟题,简单,但容易错;

    3758 大素数判定就行;

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #define maxn 100009
    using namespace std;
    
    int ans[3];
    int hit[maxn];
    int in[maxn];
    int ball[maxn];
    bool vis[maxn];
    
    int main()
    {
        int n,m;
        int p,q;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            ans[0]=0;
            ans[1]=0;
            memset(vis,0,sizeof vis);
            for(int i=0; i<n; i++)
                scanf("%d",&ball[i]);
            sort(ball,ball+n);
            int ma1=-1;
            int sumofin=0;
            int tar=0;
            int turn=0;
            for(int i=0; i<m; i++)
            {
                bool flag1=0,flag2=0,flag3=0;
                for(tar; tar<n; tar++)
                    if(vis[ball[tar]]==0)
                        break;
                ma1=0;
                sumofin=0;
                scanf("%d",&p);
                for(int i=0; i<p; i++)
                {
                    scanf("%d",&hit[i]);
                    if(hit[i]>ma1)ma1=hit[i];
                    if(hit[i]==ball[tar]&&p==1) flag1=1;//只击中目标球;
                }
                scanf("%d",&q);
                for(int i=0; i<q; i++)
                {
                    scanf("%d",&in[i]);
                    sumofin+=in[i];
                    vis[in[i]]=1;
                    if(in[i]==ball[tar])flag2=1;//目标球进了;
                    if(in[i]==0)flag3=1;//白球进了;
                }
                if(p==0)
                {
                    turn=1-turn;
                    ans[turn]+=ball[tar];
                }
                else
                {
                    if(flag3==0&&flag1==0)
                    {
                        turn=1-turn;
                        ans[turn]+=ma1;
                        ans[turn]+=sumofin;
                    }
                    else if(flag3&&p)
                    {
                        turn=1-turn;
                        ans[turn]+=ma1;
                        ans[turn]+=sumofin;
                    }
                    else if(flag2==0)
                    {
                        turn=1-turn;
                        ans[turn]+=sumofin;
                    }
                    else
                    {
                        ans[turn]+=sumofin;
                    }
                }
            }
            printf("%d : %d
    ",ans[0],ans[1]);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    线段树
    2016.9.4
    使用CSS代码修改博客模板
    爬虫
    PHP初学[DAY2]
    2016.8.23
    一个自动设置游戏房间的脚本
    可逆矩阵生成
    #2284. 接水果(fruit)
    #3762. 有趣的数(number)
  • 原文地址:https://www.cnblogs.com/yours1103/p/3577510.html
Copyright © 2011-2022 走看看