江西理工大学南昌校区排名赛 A: 单身狗的卡片游戏

题目描述

萌樱花是一只单身狗。

萌樱花今天在桌子上摆出了N张卡片,每张卡片i写着一个数字Ai

他不喜欢卡片上的数字多个出现,于是他想搞点事情拆分它们。

从桌子上选出三张卡,去掉一张数字最大,一张数字最小,然后留下中间那张放回桌子上,

这样的操作持续到桌子上的卡片显示的数字都是唯一的才停止。

那么最后桌子上最多可以留下多少张卡片呢?

输入

3<=N<=105

N是奇数,这样保证绝对可以留下一张

1<=Ai<=105

Ai是整数

输入格式:

N

A1 A2 A3 .....AN

输出

输出 最后桌子上能留下多少张卡

样例输入

5
1 2 1 3 7

样例输出

3

提示

我们选取1 1 2,去掉最大2,最小1,留下中间的1,最后桌子上只剩下1 3 7,一共三张卡

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    int a[200000];
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
    }
    sort(a,a+n);
    int x=unique(a,a+n)-a;
    if(x%2)
    {
        cout<<x;
    }
    else
    {
        cout<<x-1;
    }
    return 0;
}
#include<stdio.h>
#include<string.h>
#include<queue>
#include<algorithm>
using namespace std;
int a[100006];
int vis[100006];
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        memset(vis,0,sizeof(vis));
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
            vis[a[i]]++;
        }
        int j=100002;
        for(int i=1;i<=100002;i++)
        {
            if(vis[i]>1)
            {
                while(vis[j]<=1&&j>i)j--;
                if(j>i)
                {
                    if(vis[i]==vis[j])vis[i]=1,vis[j]=1;
                    else if(vis[i]>vis[j])
                    {
                        vis[i]-=vis[j]-1;
                        vis[j]=1;
                        i--;
                    }
                    else if(vis[i]<vis[j])
                    {
                        vis[j]-=vis[i]-1;
                        vis[i]=1;
                        j++;
                    }
                }
            }
        }
        int output=0;
        for(int i=1;i<=100002;i++)
        {
            if(vis[i]==1)output++;
            if(vis[i]>1)
            {
                if(vis[i]%2==0)continue;
                else output++;
            }
        }
        printf("%d\n",output);
    }
}  

原文地址:https://www.cnblogs.com/yinghualuowu/p/9494669.html

时间: 2024-10-12 02:57:03

江西理工大学南昌校区排名赛 A: 单身狗的卡片游戏的相关文章

江西理工大学南昌校区排名赛 C: 单身狗的地图游戏

题目描述 萌樱花是一只单身狗. 萌樱花今天决定去喜欢的学妹家玩,但他不记得路,于是他拿出有n个点的完全图,选取了k条不同的路. 完全图:n 个点的图中任意两个点之间都有一条边相连,所以有 n*(n-1)/2 条边. 连通图:图中任意两个点之间都有路径,所以至少得有 (n-1) 条边. 只要选的路是能够构成连通图就能走到学妹家了~ 那么他能够到学妹家的概率是多少呢? 输入 1<=n<=4 0<=k<=n*(n-1)/2 输入格式: n k 输出 输出概率,四舍五入到小数点后两位 样例

江西理工大学南昌校区排名赛 F: 单身狗的骑马游戏

题目描述 萌樱花是一只单身狗. 萌樱花今天在学姐那里做了一道题: 假设赛马场上有n只马儿,第i只马儿的起点在第i米的位置,这些马儿都会朝着同一个方向奔跑. 每只马儿的速度都不一样,而且大家都不知道这些马儿的速度是多少. 这些马儿将会驰骋在一个无限长的赛道上面,如果马儿A跑过了马儿B,那么马儿B就会被淘汰出局.请问考虑所有的情况,场上最后,期望将会剩下多少匹马儿在驰骋呢? 萌樱花毕竟是见得多了,所以一下就做出来了,现在来考考你们. 输入 1<=n<=10001<=T<=1000 输入

江西理工大学南昌校区排名赛 D: 单身狗的物理游戏

题目描述 萌樱花是一只单身狗. 萌樱花今天决定做一道理综物理题: 如图,两固定的绝缘斜面倾角均为θ,上沿相连.两细金属棒ab(仅标出a端)和cd(仅标出c端)长度均为L,质量分别为2m和m:用两根不可伸长的柔软导线将它们连成闭合回路abdca,并通过固定在斜面上沿的两光滑绝缘小定滑轮跨放在斜面上,使两金属棒水平.右斜面上存在匀强磁场,磁感应强度大小为B,方向垂直于斜面向上,已知两根导线刚好不在磁场中,回路电阻为R,两金属棒与斜面间的动摩擦因数均为μ,重力加速度大小为g=9.8m/s^2,已知金属

江西理工大学南昌校区排名赛 B: 单身狗的数字游戏

题目描述 萌樱花是一只单身狗. 萌樱花今天初始化了N个数字,使它们都为0 0 0 0... 萌樱花决定选取某一个位置,分别增加1到N(如果到达数组末尾就从头开始). 比如: 0 0 0(选择第二个位置开始) 3 1 2(选择第三个位置开始) 5 4 3(选择第 X 个位置开始) ....... 萌樱花因为单身,所以老是忘记自己做过什么.他现在忘记了这些数字是不是经过上面操作得到的. 如果可以通过这种操作得到,输出 YES,否则输出 NO 输入 N<=105 Ai<=109 输入格式: N A1

江西理工大学南昌校区排名赛 E: 单身狗的种树游戏

题目描述 萌樱花是一只单身狗. 萌樱花今天决定种树,于是他来到了自己家的后院. 萌樱花的后院有n个树坑,所有树坑排列在一行上,每一个树坑都可以种一棵树,相邻树坑间的距离为1,现在所有的树坑都是空着的. 作为一只单身狗,他决定种上至少k棵树来保护环境. 为了让树苗宝宝健康快乐地生长,他要求任意两棵树之间的距离至少为m,请问这样种树的方案数是多少? 输入 1<=n,k,m<=21 输入格式: n k m 输出 输出种树的方案数 样例输入 3 2 2 样例输出 1 #include<iostr

江西理工大学南昌校区cool code竞赛

这次比赛原本就是来打酱油的,想做个签到题就走!一开始不知道1002是签到题,一直死磕1001,WA了四发过了,回头一看Rank,三十名,我靠!看了1001的AC率,在我AC之前只有一个人AC了,当时我AC了1001,感觉松了口气,终于算是签到了,看AC率,1%,吓死宝宝了!我啥时候变得这么屌了,连我们学校的大佬都没AC出来,被我这样一个菜鸡给AC了,顿时感觉信心回来了,然后我的电脑上插了一个气球,莫名其妙,还有气球???回头看1002,我靠,WA了三发,什么情况,10^9,肯定超时,WA了一发,

江西理工大学南昌校区2016年新生赛

潘神的排序 解法:排序(什么为什么错了这么多次QAQ??解法就是排序啊) sort(a,a+3) cout<<a[1]<<endl; 字符串解压 解法:字符串处理(处理字符串中的数字就好了,代码给出) (当然可以用%d%c来快速处理~) 注意:如果题目是反过来告诉字符串,让你压缩会怎么办? for(i=0;i<k;i++) { if(a[i]>='0'&&a[i]<='9') { c=(a[i]-'0')+c*10;continue; } else

Luck Club-SDT超级单身狗 区块链游戏

Super Single Dog(超级单身狗)是区块链3.0时代加游戏的新型产物. 而Luck Club-SDT则是沿用以太坊智能合约账本,它也是全球知名游戏开发公司LUCK CLUB(幸运俱乐部)旗下首款区块链去中心化游戏Super Single Dog(超级单身狗)游戏的核心金融杠杆驱动. Luck Club-SDT是时代发展区块链技术应用的又一产物,Luck Club-SDT创造全新的区块链游戏,而每个玩家都将享有: 1.分享有奖,不管早还是晚,只要分享都有奖: 2.持有即股东,永久有分红

PAT乙级 1065. 单身狗(25) by Python

1065. 单身狗(25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue "单身狗"是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数N(<=50000),是已知夫妻/伴侣的对数:随后N行,每行给出一对夫妻/伴侣--为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔:之后给出一