20191028 牛客网CSP-S Round2019-1
花了 \(30min\) 打了 \(180\) 分的暴力...
仓鼠的石子游戏
问题描述
链接:https://ac.nowcoder.com/acm/contest/1100/A
仓鼠和兔子被禁止玩电脑,无聊的他们跑到一块空地上,空地上有许多小石子。兔子捡了很多石子,然后将石子摆成n个圈,每个圈由a[i]个石子组成。然后兔子有两根彩色笔,一支红色一支蓝色。兔子和仓鼠轮流选择一个没有上色的石子涂上颜色,兔子每次可以选择一个还未染色的石子将其染成红色,而仓鼠每次可以选择一个还未染色的石子将其染成蓝色,并且仓鼠和兔子约定,轮流染色的过程中不能出现相邻石子同色,谁不能操作他就输了。假设他们两个都使用了最优策略来玩这个游戏,并且兔子先手,最终谁会赢得游戏?
输入格式
第一行输入一个正整数T,表示有T组测试案例。
每组测试案例的第一行输入一个n,表示有n圈石子。 第二行输入n个正整数a[i],表示每个圈的石子数量。
输出格式
对于每组测试案例,如果兔子赢了,输出”rabbit“(不含引号)如果仓鼠赢了,输出"hamster"(不含引号)。
数据规模与约定
本题共有10组测试点数据。
对于前 \(30\%\) 的数据,满足 \(n=1,1 \le a[i] \le 7,1 \le T \le 10\)
对于前 \(60\%\) 的数据,满足 \(1 \le n \le 10^3,1 \le a[i] \le 7,1 \le T \le 10^2\) 。
对于前 \(100\%\) 的数据,满足 \(1 \le n \le 10^3,1 \le a[i] \le 10^9,1 \le T \le 10^2\)。
对于测试点 \(6\) ,在满足前 \(60\%\) 的数据条件下,额外满足 \(a[i]=1\) 。
题解
发现对于每一堆来说:
偶数堆相当于没有:不能改变先后手顺序
奇数堆:只能放偶数个
\(1\)的堆:改变先后手
因此,只保留 \(1\) 个奇数堆。这个奇数堆进入时是先手的人输。
就相当于用 \(1\) 的堆改变先后手后,看谁是后手。
发现当 \(1\) 堆的数目为奇数时, rabbit 赢,否则 hamster 赢。
\(\mathrm{Code}\)
#include<bits/stdc++.h>
using namespace std;
template <typename Tp>
void read(Tp &x){
x=0;char ch=1;int fh;
while(ch!='-'&&(ch>'9'||ch<'0')) ch=getchar();
if(ch=='-') ch=getchar(),fh=-1;
else fh=1;
while(ch>='0'&&ch<='9') x=(x<<1)+(x<<3)+ch-'0',ch=getchar();
x*=fh;
}
const int maxn=1007;
int T,n,sum;
int a[maxn];
int cnt;
void reset(){
sum=cnt=0;
}
int main(){
read(T);
while(T--){
read(n);reset();
for(int i=1;i<=n;i++){
read(a[i]);
if(a[i]==1) ++sum;
else if(a[i]&1) ++cnt;
}
cnt=cnt%2;
if(cnt==0){
if(sum&1) puts("rabbit");
else puts("hamster");
}
else{
if(sum&1) puts("rabbit");
else puts("hamster");
}
}
return 0;
}
乃爱与城市的拥挤程度
问题描述



题解
\(80\%\)
随机树部分+链
直接暴力跑就完事了。
#include<bits/stdc++.h>
using namespace std;
template <typename Tp>
void read(Tp &x){
x=0;char ch=1;int fh;
while(ch!='-'&&(ch>'9'||ch<'0')) ch=getchar();
if(ch=='-') ch=getchar(),fh=-1;
else fh=1;
while(ch>='0'&&ch<='9') x=(x<<1)+(x<<3)+ch-'0',ch=getchar();
x*=fh;
}
const int maxn=100007;
const int maxm=200007;
const int mod=1000000007;
int n,k;
int Head[maxn],to[maxm],Next[maxm],tot=1;
void add(int x,int y){
to[++tot]=y,Next[tot]=Head[x],Head[x]=tot;
}
int ans,tmp;
int aaa[maxn],bbb[maxn];
int dfs(int x,int fa,int dis){
int res=1;++ans;
if(dis==k) return res;
for(int i=Head[x];i;i=Next[i]){
int y=to[i];
if(y==fa) continue;
res+=dfs(y,x,dis+1);
}
tmp=(long long)tmp*(long long)res%mod;
return res;
}
void solve(int x){
ans=0,tmp=1;
dfs(x,0,0);
aaa[x]=ans,bbb[x]=tmp;
}
int main(){
read(n);read(k);
for(int i=1,x,y;i<n;i++){
read(x);read(y);
add(x,y);add(y,x);
}
for(int i=1;i<=n;i++){
solve(i);
}
for(int i=1;i<=n;i++){
printf("%d%c",aaa[i]," \n"[i==n]);
}
for(int i=1;i<=n;i++){
printf("%d%c",bbb[i]," \n"[i==n]);
}
return 0;
}
\(100\%\)
换根DP。
小w的魔术扑克
问题描述




20191028 牛客网CSP-S Round2019-1的更多相关文章
- 牛客网 --java问答题
http://www.nowcoder.com/ 主要是自己什么都不怎么会.在这里可以学习很多的! 第一天看题自己回答,第二天看牛客网的答案! 1 什么是Java虚拟机?为什么Java被称作是“平台无 ...
- 牛客网《BAT面试算法精品课》学习笔记
目录 牛客网<BAT面试算法精品课>学习笔记 牛客网<BAT面试算法精品课>笔记一:排序 牛客网<BAT面试算法精品课>笔记二:字符串 牛客网<BAT面试算法 ...
- C++版 - HDUoj 2010 3阶的水仙花数 - 牛客网
版权声明: 本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C++版 - ...
- 牛客网第9场多校E(思维求期望)
链接:https://www.nowcoder.com/acm/contest/147/E 来源:牛客网 题目描述 Niuniu likes to play OSU! We simplify the ...
- 牛客网暑期ACM多校训练营(第七场)Bit Compression
链接:https://www.nowcoder.com/acm/contest/145/C 来源:牛客网 题目描述 A binary string s of length N = 2n is give ...
- Beautiful Numbers(牛客网)
链接:https://ac.nowcoder.com/acm/problem/17385来源:牛客网 题目描述 NIBGNAUK is an odd boy and his taste is stra ...
- 牛客网华为机试题之Python解法
牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...
- 牛客网Wannafly挑战赛25A 因子(数论 素因子分解)
链接:https://www.nowcoder.com/acm/contest/197/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...
- 牛客网 2018年东北农业大学春季校赛 L题 wyh的天鹅
链接:https://www.nowcoder.com/acm/contest/93/L来源:牛客网 时间限制:C/C++ 3秒,其他语言6秒空间限制:C/C++ 262144K,其他语言524288 ...
随机推荐
- python保护变量(_),私有变量(__),私有方法,
上图为常规代码 私有变量(__),私有方法:只是解释器换名字了,可以通过方法/实例字典发现改后的名字: 保护变量,解释器不做任何处理:只是开发者约定的,尽量不要改动: 此时实例无法修改__age属性值 ...
- 使用vmware workstation安装centos 7操作系统
安装步骤 1.点击创建虚拟机,进入新建虚拟机向导,选择自定义,典型:相当于去电脑 旗舰店里店员推荐的是一样,推荐的比一定好,自定义:是手动操作的,没有linux基础最好选择自定义.点击下一步. 2.虚 ...
- 初学Python:Python的发展历史及下载安装
Python作为一种计算机程序设计语言,自20世纪90年代初诞生至如今被人们逐渐悉知,经过版本更新以及功能添加,已广泛应用于各种独立的.大型项目的开发.Python 已经成为最受欢迎的程序设计语言之一 ...
- django--中运行scrapy框架
1.新建一个django项目, 2.前端展示一个按钮 <form action="/start/" method="POST"> {% csrf_t ...
- 《转》crontab 定时任务
命令格式 crontab [-u user] file crontab [-u user] [-e | -l | -r | -i ] 命令参数 -u user:用来设定某个用户的crontab服务,例 ...
- 【Linux命令】文本文件编辑命令10个(cat、more、less、head、tail、tr、wc、stat、cut、diff)
目录 cat查看文档 more可分页查看文档 less相比较more功能更强大 head查看文档的前N行 tail查看文档的后N行或试试刷新查看 tr替换文本字符 wc统计文本行数 stat查看文档存 ...
- C# shell32.dll 的用法
1 首先要使用shell32 请在项目引用中添加shell32.dll 的引用 (备注:该引用是系统dll文件 在C:\Windows\System32 目录下 可以自行拷贝到项目中) priv ...
- SSM(七)在JavaWeb应用中使用Redis
前言 先来看一张效果图: 作用就是在每次查询接口的时候首先判断Redis中是否有缓存,有的话就读取,没有就查询数据库并保存到Redis中,下次再查询的话就会直接从缓存中读取了.Redis中的结果:之后 ...
- hive creating temporary folder on: Error encountered near token 'TOK_TMP_FILE'
执行create tmp.tablename as select .....语句的时候报以下错误: SemanticException 0:0 creating temporary folder o ...
- java基础(14):Eclipse、面向对象、自定义数据类型的使用
1. Eclipse的应用 1. 常用快捷操作 Ctrl+T:查看所选中类的继承树 例如,在下面代码中,选中Teacher类名,然后按Ctrl+T,就会显示出Teacher类的继承关系 //员工 ab ...