链接:
https://www.nowcoder.com/acm/contest/87/J
来源:牛客网
来源:牛客网
题目描述
OI 的生涯如此短暂,恐怕就要到了分别的时候了。
回想起自己的OI 生活,那一切的一切都历历在目。
仍然记得,在骄阳似火的夏天,机房内一群完全不懂编程的小白,围在黑板前,听学长不厌其烦的讲解。
仍然记得,在金凤飒爽的秋天,考完NOIP时那失望的表情,那下定决心努力补弱的意志。
仍然记得,在白雪皑皑的冬天,靠在机房暖气边,整理着一份又一份的笔记,修改了一道又一道题目。
仍然记得,那些来自五湖四海的朋友们,那一场又一场的比赛,那一次又一次的集训。
尽管依依不舍,尽管不愿分别,可是——终于,要告别了吗?
带着一颗热爱程序设计竞赛的心,祝愿自己能够与那个她共同考上理想的大学,祝大家能在这算法竞赛中,欣赏到美丽的风景,认识到志同道合的朋友们,达到自己想达到的高度,不断挑战自我,不断砥砺前行!
THE END —— Johnson
XHRlyb总喜欢找一些函数的零点。
一天,Cwbc给了XHRlyb一个函数,它是由n个二维平面上的点组成。
首先,Cwbc将这些点按照横坐标顺序 从小到大排序。
然后,Cwbc将这些点连接成一条简单的 折线(即点1连接点2,点2连接点3,......,点n-1连接点n)。
最后,Cwbc以点2为端点,作了一条经过点1的 射线;以点n-1为端点,作了一条经过点n的 射线。
这样,这个函数就完成啦~
XHRlyb见到这个函数,就迫不及待的找起了零点,但她想请你帮忙检验一下零点的正误。
为了方便起见,她只想检查整数零点的正误。所以你需要 从小到大输出函数的 整数零点。
一天,Cwbc给了XHRlyb一个函数,它是由n个二维平面上的点组成。
首先,Cwbc将这些点按照横坐标顺序 从小到大排序。
然后,Cwbc将这些点连接成一条简单的 折线(即点1连接点2,点2连接点3,......,点n-1连接点n)。
最后,Cwbc以点2为端点,作了一条经过点1的 射线;以点n-1为端点,作了一条经过点n的 射线。
这样,这个函数就完成啦~
XHRlyb见到这个函数,就迫不及待的找起了零点,但她想请你帮忙检验一下零点的正误。
为了方便起见,她只想检查整数零点的正误。所以你需要 从小到大输出函数的 整数零点。
聪明的你在仔细阅读题目后,一定可以顺利的解决这个问题!
输入描述:
第一行:一个整数n。 接下来n行:每行两个整数xi , yi。
输出描述:
将零点的数量记为cnt。 若cnt > 3 * 105,则: 第一行:一个整数-1。 否则: 第一行:一个整数cnt。
第二行:cnt个整数,表示整数零点的横坐标,用空格隔开(如果cnt为0,则第二行不必输出)
#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
typedef long long ll;
const int maxn=1e5+10;
int dp[maxn][110];
int sum[maxn][110];
void init(){
for(int k=2;k<=100;k++){
for(int i=1;i<maxn;i++){
dp[i][k]=(k*dp[i/k][k])%2+1;
sum[i][k]=sum[i-1][k]+dp[i][k];
}
}
}
/*
思路是有的,只是没有仔细思考1,还有就是预处理,真是简直了,我感觉
有思路不就好了么,还是基础不好,如果基础好的话,
看到这样的数据范围,我们就应该想到要记忆化
可能当前我们的优化是最好的了,但是多组输入的话,我们是不是
还可以进行记忆话,感觉很难受啊,菜的难受
*/
int main()
{
ll l,r,k;
init();
while(scanf("%lld %lld %lld",&l,&r,&k)==3){
if(k==1){
printf("Draw\n");
continue;
}
int val=sum[r][k]-sum[l-1][k];
// printf("val:%d\n",val);
if(val%2){
printf("XHRlyb\n");
}
else{
printf("Cwbc\n");
}
}
return 0;
}