2783: 【基础】小 X 玩游戏(game)
2783: 【基础】小 X 玩游戏(game)
时间限制: 1 Sec 内存限制: 64 MB
提交: 752 解决: 294
[提交] [状态] [讨论版] [命题人:ghost79]
题目描述
听完了故事,小 X 又想去玩一会儿游戏了。 这是一个很奇特的单机游戏, 游戏规则如下:
游戏中一共有 4× n 张牌,每张牌上有一个数字, 这些数字恰好是 1~4× n。一开始电脑会把这 4× n张牌随机打乱,然后会发 2× n 张牌给小 X。那些剩下的 2× n 牌电脑会再打乱一次,然后排成一排展示给小 X 看。而小 X 需要做的就是将自己的 2× n 张牌也排成一排,与电脑展示的 2× n 张牌一一对应。
之后就开始评分了,对于前 n 对牌(一对牌是指小 X 的一张加上电脑的一张), 牌上数字小的一方获得一分; 而对于后 n 对牌, 牌上数字大的一方获得一分。
例 如当 n=3 时, 共 有 12 张牌 , 牌 上的数字是 1 ~ 12 。 电脑打乱 后,小 X 拿到 6 张牌 , 假设 是1, 3, 4, 5, 7, 8。 此时电脑手中还剩下 2, 6,9, 10, 11, 12。同样假设电脑会将这 6 张牌按照 9, 11, 6, 2, 12, 10 这样的顺序展示给小 X 看。如果小 X 是将 6 张牌按 1, 7, 5, 8, 4, 3 这么排的,那么小 X 会获得 4 分。
第 1 对: 1 – 9 ,小 X 得 1 分, 电脑得 0 分
第 2 对: 7 – 11,小 X 得 1 分, 电脑得 0 分
第 3 对: 5 – 6 ,小 X 得 1 分, 电脑得 0 分
第 4 对: 8 – 2 ,小 X 得 1 分, 电脑得 0 分
第 5 对: 4 – 12, 电脑得 1 分,小 X 得 0 分
第 6 对: 3 – 10, 电脑得 1 分,小 X 得 0 分
前一半第 1 对~第 3 对牌是比谁小,后一半第 4 对~第 6 对牌是比谁大。前一列数字代表的是小 X 的牌,后一列数字代表的是电脑的牌。
小 X 现在已经拿到了 2× n 张牌,同时电脑也已经展示出了它的 2× n 张牌是怎么排列的,小 X 想知道他最多能够获得多少分?
输入
输入数据第一行为一个正整数 n。
接下来一行共有 2× n 个用空格隔开的正整数, 表示小 X 手中拥有的 2× n 张牌。
再下一行同样是 2× n 个用空格隔开的正整数, 表示电脑展示出的 2× n 张牌(以读入的顺序展示)。
输出
输出一行只有一个数ans, 表示小 X 最多能够获得的分数。
样例输入
4
5 3 2 16 14 13 9 7
1 8 12 11 15 6 4 10
样例输出
7
提示
【数据范围】
对于 30% 的数据, 1 ≤ n ≤ 4
对于另外 40% 的数据, 电脑展示的 2× n 张牌是从小到大排好序的
对于 100% 的数据, 1 ≤ n ≤ 1000
```c
来源/分类
常州市2016“信息与未来”夏令营选拔赛
***
**题解如下**
```c
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
int ar[2*n];
int br[2*n];
for(int i=0;i<2*n;i++)
{
scanf("%d",&ar[i]);
}
for(int i=0;i<2*n;i++)
{
scanf("%d",&br[i]);
}
sort(br,br+n);
sort(br+n,br+2*n); //思路把电脑牌分成前后两部分对这两部分分别进行排序,
sort(ar,ar+2*n); //把小X的拍直接排序,也将小X的牌分成前后两部分
int sum_score=0;
for(int i=n-1;i>=0;i--) //排完序后对前一部分操作,把ar元素从最大值开始,与br的最小值元素开始进行比较,直到找到符合题意的进行次数加1,
//如果无符合题意的,则进行ar下一个最大元素的比较,
{
int flag=0;
for(int j=0;j<n;j++)
{
if(ar[i]<br[j])
{
flag=1;
br[j]=-1;
break;
}
}
if(flag==1)
{
sum_score++;
}
}
for(int i=n;i<2*n;i++) //对后一部分进行操作
{
int flag=0;
for(int j=2*n-1;j>=n;j--)
{
if(ar[i]>br[j])
{
flag=1;
br[j]=9999;
break;
}
}
if(flag==1)
{
sum_score++;
}
}
printf("%d",sum_score);
return 0;
}
2783: 【基础】小 X 玩游戏(game)的更多相关文章
- JZOJ 5777. 【NOIP2008模拟】小x玩游戏
5777. [NOIP2008模拟]小x玩游戏 (File IO): input:game.in output:game.out Time Limits: 1000 ms Memory Limits ...
- P5676 [GZOI2017]小z玩游戏【Tarjan】
小z玩游戏 Tarjan算是板子题吧,但是要稍微做一些修改,建边需要多考虑,建立"虚点". 题目描述 小 z 很无聊. 小 z 要玩游戏. 小 z 有\(N\)个新游戏,第\(i\ ...
- 【题解】 [GZOI2017]小z玩游戏
题目戳我 \(\text{Solution:}\) 考虑建图.操作可以看作对\(1\)进行的操作,于是有以下运行过程: \(1\to w[i]\to e[i]\to...\) 考虑倍数,一个数可以走到 ...
- SCUT - 131 - 小P玩游戏II - 贪心 - 平衡树
https://scut.online/p/131 首先假如钦定了一群人去打怪兽,那么可以把主要的任务都丢给b最大的人去打,这样不会更差.然后考虑枚举这个b最大的人,其他人陪练.一开始就是ai+k*b ...
- 神奇的建图方式(Tarjan)——小z玩游戏
原题来自与:洛谷 P5676(GZOI2017) 链接: https://www.luogu.com.cn/problem/P5676 题面: 题意比较明显,如果已经建好了边,那么跑个Tarjan ...
- P5676 [GZOI2017]小z玩游戏 Tarjan+优化建图
题目描述 分析 一开始看到这道题,首先想到的就是建好边后跑一个Tarjan缩点,将siz大于1的节点统计一下,输出结果 Tarjan非常显然易得,关键就是怎么建边 比较好想的一种思路就是枚举每一个兴奋 ...
- J - 玩游戏
小A和小B玩游戏,初始的时候小A给小B一组包含n个数的数组.他们按如下的规则进行: 每次小B得到一组数,他把这组数的和加到自己的分数里面(他的初始分数是0),然后他把这组数还给小A. 如果小A得到的这 ...
- 小易邀请你玩一个数字游戏,小易给你一系列的整数。你们俩使用这些整数玩游戏。每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字。 例如: 如果{2,1,2,7}是你有的一系列数,小易说的数字是11.你可以得到方案2+2+7 = 11.如果顽皮的小易想坑你,他说的数字是6,那么你没有办法拼凑出和为6 现在小易给你n个数,让你找出无法从n个数中选取部分求和
小易邀请你玩一个数字游戏,小易给你一系列的整数.你们俩使用这些整数玩游戏.每次小易会任意说一个数字出来,然后你需要从这一系列数字中选取一部分出来让它们的和等于小易所说的数字. 例如: 如果{2,1,2 ...
- 6、Cocos2dx 3.0游戏开发找小三之游戏的基本概念
重开发人员的劳动成果,转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27689713 郝萌主友情提示: 人是习惯的产物,当你 ...
随机推荐
- 多图文,详细介绍mysql各个集群方案
目录 多图文,详细介绍mysql各个集群方案 一,mysql原厂出品 二,mysql第三方优化 三,依托硬件配合 四,其它 多图文,详细介绍mysql各个集群方案 集群的好处 高可用性:故障检测及迁移 ...
- vue 带参数的跳转-完成一个功能之后 之后需要深思,否则还会忘记
我要写详细点,否则下次很容易忘记 写了一个页面,这个页面里面添加了 很多a 标签,跳转都是同一个页面,内容不一样,方法 首先 路由 设定好 routes:[ { path:'/aaa', name:' ...
- 2020centos解决“nginx 403 Forbidden"错误的故事
最近折腾一个放在日本的vps,网速还可以,就是经常丢包. 原本配置了Nginx的做代理服务器,我想反正服务器空闲者,放点我自己的资料 配置了一个静态html文件,方便自己随时查看 结果,不停的修改ng ...
- flink RPC(akka)
flink中的rpc框架使用的akka.在本节并不详细讲述akka,而是就flink中rpc来讲述akka的部分内容.本节,我从AkkaRpcActor.handleRpcInvocation方法讲起 ...
- 基于 HTML + WebGL 结合 23D 的疫情地图实时大屏 PC 版
前言 2019年12月以来,湖北省武汉市陆续发现了多例肺炎病例,现已证实为一种新型冠状病毒感染引起的急性呼吸道传染病并蔓延全国,肺炎疫情牵动人心,人们每天起来第一件事变成了关注疫情进展,期望这场天灾早 ...
- linux ftp服务器设置,只允许用户访问指定的文件夹,禁止访问其他文件夹
在Linux中添加ftp用户,并设置相应的权限,操作步骤如下: 1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test 2.建用户:在root用户下: useradd ...
- URL及short URL短网址
URL,uniform resource locator,经常被称为网址,尤其是在使用HTTP的时候.通常是一个指向某个资源的字符串. URLs经常被用于网页(http),但也可以用于文件传输(f ...
- js 实现弹性运动的简单应用----导航栏中弹性
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- PPP协议(简述)
PPP协议(链路层协议):用于点对点信道.互联网用户通常需要连接到某个ISP(运营商)之后才能接入到互联网,PPP协议是用户计算机和ISP(运营商)进行通信时所使用的数据链路层协议.该协议可支持同一时 ...
- IE8使用chrome内核渲染
1 第一步 https://download.csdn.net/download/qq_34626479/11223448 下载chrome frame安装包; 2 第二步 网页头部添加一行 ...