其他分享
首页 > 其他分享> > P6014 [CSGRound3]斗牛

P6014 [CSGRound3]斗牛

作者:互联网

https://www.luogu.com.cn/problem/P6014
模拟,贪心
黄色题
  思路:

首先有一个比较显然的结论:选牌的方式和最终点数无关。

如果所有牌的点数和的个位数为 xx,那么无论我们怎么取那 n-2n−2 张牌,因为那 n-2n−2 张牌的点数和总是 1010 的倍数,这一局的点数和也一定是 xx。

当然,上面这一切成立的前提是存在一种取 22 张牌的方式使得这两张牌的点数和的个位数为 xx。

完成这个判断,我们只需记录一下每种牌的出现次数即可。

逆转思维: 正难则反


 

#include <iostream>
using namespace std;
int t[15];
int main()
{
 int n,ans=0;
 cin>>n;
 for(int i=1;i<=n;i++)
 {
  int x;
  cin>>x;
  t[x%10]++;
  ans=(ans+x)%10;
 }
 for(int i=0;i<=9;i++)//枚举两种不同的牌
  for(int j=i+1;j<=9;j++)
   if(t[i]&&t[j]&&(i+j)%10==ans)
   {
    cout<<(!ans?10:ans)<<endl;
    return 0;
   }
 for(int i=0;i<=9;i++)//枚举两种相同的牌
  if(t[i]>=2&&(i+i)%10==ans)
  {
   cout<<(!ans?10:ans)<<endl;
   return 0;
  }
 cout<<0<<endl;
 return 0;
}

 

标签:10,int,CSGRound3,张牌,xx,P6014,ans,点数,斗牛
来源: https://www.cnblogs.com/2elaina/p/16561223.html