• 【HDOJ6655】Just Repeat(贪心)


    题意:A和B两个人玩游戏,分别有n和m张牌,A的第i张牌是a[i],B是b[i]

    两人轮流出牌,如果一种编号的牌被其中一个人出了另一个人就不能出自己手中这个编号的牌

    两人都按最优策略行动,问获胜者

    思路:

     考场上好像卡常,补题的时候似乎没有

      1 #include<bits/stdc++.h>
      2 using namespace std;
      3 typedef long long ll;
      4 typedef unsigned int uint;
      5 typedef unsigned long long ull;
      6 typedef pair<int,int> PII;
      7 typedef pair<ll,ll> Pll;
      8 typedef vector<int> VI;
      9 typedef vector<PII> VII;
     10 //typedef pair<ll,ll>P;
     11 #define N  200010
     12 #define M  200010
     13 #define fi first
     14 #define se second
     15 #define MP make_pair
     16 #define pb push_back
     17 #define pi acos(-1)
     18 #define mem(a,b) memset(a,b,sizeof(a))
     19 #define rep(i,a,b) for(int i=(int)a;i<=(int)b;i++)
     20 #define per(i,a,b) for(int i=(int)a;i>=(int)b;i--)
     21 #define lowbit(x) x&(-x)
     22 #define Rand (rand()*(1<<16)+rand())
     23 #define id(x) ((x)<=B?(x):m-n/(x)+1)
     24 #define ls p<<1
     25 #define rs p<<1|1
     26 
     27 const int MOD=1e9+7,inv2=(MOD+1)/2;
     28       double eps=1e-4;
     29       int INF=1e9;
     30       int inf=0x7fffffff;
     31       int dx[4]={-1,1,0,0};
     32       int dy[4]={0,0,-1,1};
     33 
     34 struct node
     35 {
     36     int x,y;
     37 }q[N];
     38 
     39 int a[N],b[N],c[N],s[2],d[N][2];
     40 ull k1,k2;
     41 
     42 int read()
     43 {
     44    int v=0,f=1;
     45    char c=getchar();
     46    while(c<48||57<c) {if(c=='-') f=-1; c=getchar();}
     47    while(48<=c&&c<=57) v=(v<<3)+v+v+c-48,c=getchar();
     48    return v*f;
     49 }
     50 
     51 unsigned long long rng()
     52 {
     53     unsigned long long k3 = k1, k4 = k2;
     54     k1 = k4;
     55     k3 ^= k3 << 23;
     56     k2 = k3 ^ k4 ^ (k3 >> 17) ^ (k4 >> 26);
     57     return k2 + k4;
     58 }
     59 
     60 bool cmp(node a,node b)
     61 {
     62     return a.x+a.y>b.x+b.y;
     63 }
     64 
     65 void solve()
     66 {
     67     int n1=read(),n2=read(),p=read();
     68     if(p==1)
     69     {
     70         rep(i,1,n1) a[i]=read();
     71         rep(i,1,n2) b[i]=read();
     72     }
     73      else
     74      {
     75          int mod;
     76          scanf("%llu%llu%d",&k1,&k2,&mod);
     77          rep(i,1,n1) a[i]=rng()%mod;
     78          scanf("%llu%llu%d",&k1,&k2,&mod);
     79          rep(i,1,n2) b[i]=rng()%mod;
     80      }
     81     int t=0;
     82     rep(i,1,n1) c[++t]=a[i];
     83     rep(i,1,n2) c[++t]=b[i];
     84     sort(c+1,c+t+1);
     85     t=unique(c+1,c+t+1)-c-1;
     86     rep(i,1,n1)
     87     {
     88         a[i]=lower_bound(c+1,c+t+1,a[i])-c;
     89         d[a[i]][0]++;
     90     }
     91     rep(i,1,n2)
     92     {
     93         b[i]=lower_bound(c+1,c+t+1,b[i])-c;
     94         d[b[i]][1]++;
     95     }
     96 
     97     int m=0;
     98     s[0]=0,s[1]=0;
     99     rep(i,1,t)
    100     {
    101         if(d[i][0]&&d[i][1])
    102         {
    103             m++;
    104             q[m].x=d[i][0];
    105             q[m].y=d[i][1];
    106             continue;
    107         }
    108         if(d[i][0]) s[0]+=d[i][0];
    109         if(d[i][1]) s[1]+=d[i][1];
    110     }
    111     sort(q+1,q+m+1,cmp);
    112     int v=1;
    113     rep(i,1,m)
    114     {
    115         v^=1;
    116         if(v==0) s[v]+=q[i].x;
    117          else s[v]+=q[i].y;
    118     }
    119     if(s[0]>s[1]) printf("Cuber QQ
    ");
    120      else printf("Quber CC
    ");
    121     rep(i,1,t)
    122      rep(j,0,1) d[i][j]=0;
    123 }
    124 
    125 
    126 
    127 int main()
    128 {
    129     int cas=read();
    130     while(cas--) solve();
    131     return 0;
    132 }
  • 相关阅读:
    Openssl命令详解
    Openssl命令详解
    Mac根目录下无法创建文件或目录
    解决 mysql from_base64 函数返回乱码的问题
    elementUI日期选择器 el-date-picker根据所选日期选择禁用
    el-dialog设置为点击弹窗以外的区域不自动关闭弹窗
    在vue项目中MD5加密的使用方法
    bower install 报错fatal: unable to access 'https://github.com/angular/bower-angular-touch.git/'类错误解决方法
    angular项目grunt serve报错Cannot find where you keep your Bower packages
    移动端开发--》适配各种机型样式大小
  • 原文地址:https://www.cnblogs.com/myx12345/p/11654361.html
Copyright © 2020-2023  润新知