ZJNU 2353 - UNO
大模拟,但是题目好像有些地方表述不清
根据UNO在初中曾被别人虐了很久很久的经历
猜测出了原本的题意
本题中的+2虽然有颜色,但是也可以当作原UNO游戏中的+4黑牌
即在某人出了+2后,可以出不同颜色的+2更改场上的颜色
在+2环节,如果一个人除了+2,下一个人如果有+2,就可以把+2出出去,这一回合就不需要再出东西了
直到最后一个人没有任何颜色的+2牌了,那么这个人就要摸累积起来的数量的牌
#include<bits/stdc++.h>
using namespace std;
queue<int> q;
int have[][],haveNum[];
int gcid(char in){
switch(in){
case 'B':return ;
case 'G':return ;
case 'R':return ;
case 'Y':return ;
}
}
void getcard(int who,int num){
int i;
for(i=;i<num;i++){
have[who][q.front()]++;
q.pop();
}
haveNum[who]+=num;
}
int main(){
int i,j,turn=,nDigit,nColor,pluscard=;
bool could=false,sameColor=false;
char s[];
memset(have,,sizeof have);
memset(haveNum,,sizeof haveNum);
for(i=;i<;i++){
cin>>s;
if(s[]=='Y')
q.push(gcid(s[]));
else
q.push(gcid(s[])*+s[]-'');
}
for(i=;i<;i++)
getcard(i,);
for(i=;!could&&i<;i++)
for(j=;j<;j++)
if(have[][j*+i]){
have[][j*+i]--;
haveNum[]--;
nColor=j;
nDigit=i;
q.push(j*+i);
could=true;
break;
}
for(i=;!could&&i<;i++)
if(have[][i]){
have[][i]--;
haveNum[]--;
nColor=j;
q.push(i);
pluscard+=;
sameColor=true;
could=true;
}
while(haveNum[]&&haveNum[]&&haveNum[]&&haveNum[]&&haveNum[]){
could=false;
if(pluscard){
if(have[turn][nColor]){//同色+2
have[turn][nColor]--;
haveNum[turn]--;
pluscard+=;
q.push(nColor);
could=true;
}
for(i=;!could&&i<;i++)//异色+2
if(have[turn][i]){
have[turn][i]--;
haveNum[turn]--;
nColor=i;
pluscard+=;
q.push(i);
could=true;
}
if(could){
turn=(turn+)%;
continue;
}
else{
getcard(turn,pluscard);
pluscard=;
}
}
for(i=;!could&&i<;i++)//相同颜色选数字
if(have[turn][nColor*+i]){
have[turn][nColor*+i]--;
haveNum[turn]--;
nDigit=i;
q.push(nColor*+i);
could=true;
sameColor=false; }
for(i=;!could&&!sameColor&&i<;i++)//相同数字选颜色
if(have[turn][i*+nDigit]){
have[turn][i*+nDigit]--;
haveNum[turn]--;
nColor=i;
q.push(i*+nDigit);
could=true;
}
if(!could&&have[turn][nColor]){//同色+2
have[turn][nColor]--;
haveNum[turn]--;
pluscard+=;
q.push(nColor);
sameColor=true;
could=true;
}
for(i=;!could&&sameColor&&i<;i++)//异色+2
if(have[turn][i]){
have[turn][i]--;
haveNum[turn]--;
nColor=i;
pluscard+=;
q.push(i);
could=true;
}
if(!could)
getcard(turn,);
turn=(turn+)%;
}
getcard(turn,pluscard);
for(i=;i<;i++){
if(!haveNum[i])
puts("Winner");
else{
int score=;
for(j=;j<;j++)
if(have[i][j])
score+=*have[i][j];
for(j=;j<;j++)
if(have[i][j])
score+=(j%)*have[i][j];
printf("%d\n",score);
}
} return ;
}
ZJNU 2353 - UNO的更多相关文章
- 基于Proteus仿真的Arduino学习(1)——Arduino Uno最小系统及LED的简单使用
一.前言: A.Arduino简介 Arduino是由一个欧洲开发团队于2005年冬季开发.其成员包括Massimo Banzi.David Cuartielles.Tom Igoe.Gianluc ...
- hdu 3047–Zjnu Stadium(带权并查集)
题目大意: 有n个人坐在zjnu体育馆里面,然后给出m个他们之间的距离, A B X, 代表B的座位比A多X. 然后求出这m个关系之间有多少个错误,所谓错误就是当前这个关系与之前的有冲突. 分析: 首 ...
- hdu 3074 Zjnu Stadium (带权并查集)
Zjnu Stadium Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- Arduino uno R3 ISP刷Rootloader for arduino pro mini
找了好久才发现的,好东西.介绍怎么使用uno对mini 刷Rootloader **SOLUTION** Reinstall the Arduino Pro Mini Bootloader using ...
- [Arduino] Arduino Uno R3 中文介绍
Arduino UNO是Arduino USB接口系列的最新版本,作为Arduino平台的参考标准模板.UNO的处理器核心是ATmega328,同时具有14路数字输入/输出口(其中6路可作为PWM输出 ...
- import uno 错误
安装aeroolib 模块后,提示没有 uno 相关段一些模块, 原因是这些模块是 openoffice 中段,需要先安装 openoffice. 1:清除所有 libreoffice 软件, su ...
- 《团队作业》五小福团队--UNO的博客链接汇总
<团队作业>五小福团队--UNO的博客链接汇总 <团队作业第一周>五小福团队作业--UNO <团队作业第二周>五小福团队作业--UNO <团队作业第三.第四周 ...
- Platform.Uno介绍
编者语:Xamarin国内很多人说缺乏可用的实例,我在写书过程中在完善一些常用场景的例子,希望帮到大家.Build 2018结束一周了,善友问我要不要谈谈Xamarin的一些变化,但碍于时间有限一直没 ...
- 《团队作业第一周》五小福团队作业——UNO
<团队作业第一周>团队作业--UNO 一.团队展示 队员学号 队名:五小福 (真是个红红火火恍恍惚惚的队名)> 拟作的团队项目描述 基于安卓开发的有趣味性的UNO纸牌小游戏 队员风采 ...
随机推荐
- Maven插件方式使用Mybatis Generator
Mybatis Generator Mybatis Generator简称MBG,可以根据数据库自动生成实体类.单表查询接口及其映射xml文件(也可以选择以注解方式生成). 下面介绍一下以maven插 ...
- POJ 1195:Mobile phones 二维树状数组
Mobile phones Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 16893 Accepted: 7789 De ...
- CentOS 6.x 重置root 密码
1.重启,进入启动界面,快速按e,进入GNU GRUB界面. 2.选择第二项,按e,进行编辑. 3.在末尾输入1或single,回车,返回上一界面,还是选第二项,按b,进入单用户模式. 此时输入命令 ...
- CSS - 美化字体 => CSS的-font-smoothin属性优化
body{ margin: 0; font-family: Arial, Helvetica, sans-serif; line-height: 1.2em; back ...
- ipv6_RIPng配置
ipv6 unicast-routing——类似IPv4的ip routing ipv6 route rip word——启用IPv6进程 防止环路——split-horizon——水平分割——不再接 ...
- 升级安装go1.13.5
运行文件时报错 verifying github.com/mattn/go-isatty@v0.0.10-0.20190818123653-bf9a1dea1961/go.mod: github.co ...
- 十九、SAP查询所有数据库表的所有数据
一.我们打款SAP自带的一个演示数据库SCARR 二.表结构如下 三.代码如下 四.执行结果如下 我们对比一下数据库的内容,很perfect 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微 ...
- Centos7安装rabbitMQ3.6.0
文章中的erlang和rabbitmq3.6.0 http://pan.baidu.com/s/1c2Nn64w Centos7 系统操作 cd /etc/yum.repos.d/ mv Cent ...
- 《thinkphp》二、创建实例
1.目录结构 project 应用部署目录 ├─application 应用目录(可设置) │ ├─common 公共模块目录(可更改) │ ├─index 模块目录(可更改) │ │ ├─confi ...
- js原型链理解(4)-经典继承
经典继承就是组合继承,就是组合构造函数和原型链的优点混合继承. 1.避免引用类型的属性初始化 2.避免相同方法的多次初始化 function Super(name){ this.ages = [100 ...