喵哈哈村的魔法考试 Round #5 (Div.2) ABCC2
2017-03-07 21:03
471 查看
官方题解:http://www.cnblogs.com/qscqesze/p/6516139.html
喵哈哈村最近热衷于玩一个叫做狼人杀的游戏!
张小田今天她抽到的是民的身份,按照她的一贯玩法,她不会考虑发言者的发言,她只考虑站队情况。
现在是警上竞选的投票环节,现在只剩下还能当警长的两个真假预言家。
张小田认为,如果在某一天,有连续坐在一起的k个人投票给同一个人的话,那么她就认为这一局可能比较危险。
投给第一个预言家的,就记为0,投给第二个预言家的记为1,于是就可以得到一个01串。
现在张小田就交给你来判断,如果按照张小田 的逻辑来看这一局是否危险!
----
题目翻译:给你一个01串,你需要判断这个01串里面是否存在连续的相同字符的长度超过k个。
假设当前k为3,那么010101001就不危险,11101010就危险。
注意,该01串是串,而不是环。
输入
该题包含多组测试数据。
第一行一个整数k。
第二行一个01串,s。
满足:1<=len(s)<=100,1<=k<=100
输出
如果危险的话,输出Lose,否则输出Win
样例输入1 复制
样例输出1
喵哈哈村最近热衷于玩一个叫做狼人杀的游戏!
星星同学今天她抽到的是狼的身份,按照她的一贯玩法,她喜欢无情的屠杀掉所有的神。
她现在已经很清楚了场上的预言家,女巫,猎人是谁。但是她唯一不知道的就是白痴这张神牌在谁的身上。于是她诈一诈她的下家——天行廖。
星星同学的逻辑是这样的:她可以考一道题给天行廖,如果天行廖能够答上来的话,那么天行廖肯定不是白痴,因为白痴是答不上题的。
这道题是这样的:
如果一个数只包含4和7的话,那么这个串就是幸运数,比如4777,774就是幸运数,而467就不是幸运数。
如果一个幸运数中包含的4和7的数量相同的话,那么这个数就是超级幸运数,比如4747就是超级幸运串,447就不是。
现在给你一个n,你需要找到一个最小的超级幸运数,并且这个超级幸运数大于等于n。
输入
本题包含若干组测试数据。
第一行一个整数n。
满足 1<=n<=10^9
输出
输出最小的超级幸运数,。
样例输入1 复制
样例输出1
喵哈哈村最近热衷于玩一个叫做狼人杀的游戏!
昊昊同学今天他抽到的是平民的身份,按照他的一贯玩法,他喜欢挂机,就什么事儿都不干。
于是他早早的就被推出去了。
现在他很无聊,于是他想了一道题来给自己打发时间。
定义f(x)=abs(ax^3+bx^2+cx+d),abs为绝对值符号。
给你a,b,c,d,l,r。
他想知道[l,r]这个范围内,f(x)的最大值。
输入
题目包含多组测试数据。
第一行六个整数,a,b,c,d,l,r。
满足-10<=a,b,c,d<=10,-100<=l<=r<=100
输出
对于每组测试诗句,输出最大值,需要保留两位小数。
样例输入1 复制
样例输出1
喵哈哈村最近热衷于玩一个叫做狼人杀的游戏!
徐元帅同学今天他抽到的是女巫的身份,按照他的一贯玩法,他喜欢一开始就把自己毒死。
于是他早早的就出去了。
他很无聊,于是出了一道题给自己玩。
他从怀里面掏出了一个数字n。
他想知道有多少组三元组(a,b,c),满足a<=b<=c,且a,b,c都是素数,而且a+b+c=n。
输入
本题包含若干组测试数据。
每组测试数据只含有一个整数n。
1<=n<=10000
输出
输出三元组的数量。
样例输入1 复制
样例输出1
喵哈哈村的狼人杀大战(1)
描述喵哈哈村最近热衷于玩一个叫做狼人杀的游戏!
张小田今天她抽到的是民的身份,按照她的一贯玩法,她不会考虑发言者的发言,她只考虑站队情况。
现在是警上竞选的投票环节,现在只剩下还能当警长的两个真假预言家。
张小田认为,如果在某一天,有连续坐在一起的k个人投票给同一个人的话,那么她就认为这一局可能比较危险。
投给第一个预言家的,就记为0,投给第二个预言家的记为1,于是就可以得到一个01串。
现在张小田就交给你来判断,如果按照张小田 的逻辑来看这一局是否危险!
----
题目翻译:给你一个01串,你需要判断这个01串里面是否存在连续的相同字符的长度超过k个。
假设当前k为3,那么010101001就不危险,11101010就危险。
注意,该01串是串,而不是环。
输入
该题包含多组测试数据。
第一行一个整数k。
第二行一个01串,s。
满足:1<=len(s)<=100,1<=k<=100
输出
如果危险的话,输出Lose,否则输出Win
样例输入1 复制
3 010101001 3 11101010
样例输出1
Win Lose 解法:模拟
#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> #include<map> #include<vector> #define ll long long using namespace std; inline int read() { int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9') { if(ch=='-')f=-1; ch=getchar(); } while(ch>='0'&&ch<='9') { x=x*10+ch-'0'; ch=getchar(); } return x*f; } string s; int n,ans; int v[50005],a[50005]; int best[50005]; int main() { int k; while(cin>>k) { cin>>s; int sum0=1; int sum1=0; int Max=-1; char ans=s[0]; for(int i=1; i<s.length(); i++) { if(s[i-1]==s[i]) { sum0++; Max=max(Max,sum0); } else { ans=s[i]; sum0=1; } } // cout<<max(Max,sum0)<<endl; if(k>max(Max,sum0)) { cout<<"Win"<<endl; } else { cout<<"Lose"<<endl; } } return 0; }
喵哈哈村的狼人杀大战(2)
描述喵哈哈村最近热衷于玩一个叫做狼人杀的游戏!
星星同学今天她抽到的是狼的身份,按照她的一贯玩法,她喜欢无情的屠杀掉所有的神。
她现在已经很清楚了场上的预言家,女巫,猎人是谁。但是她唯一不知道的就是白痴这张神牌在谁的身上。于是她诈一诈她的下家——天行廖。
星星同学的逻辑是这样的:她可以考一道题给天行廖,如果天行廖能够答上来的话,那么天行廖肯定不是白痴,因为白痴是答不上题的。
这道题是这样的:
如果一个数只包含4和7的话,那么这个串就是幸运数,比如4777,774就是幸运数,而467就不是幸运数。
如果一个幸运数中包含的4和7的数量相同的话,那么这个数就是超级幸运数,比如4747就是超级幸运串,447就不是。
现在给你一个n,你需要找到一个最小的超级幸运数,并且这个超级幸运数大于等于n。
输入
本题包含若干组测试数据。
第一行一个整数n。
满足 1<=n<=10^9
输出
输出最小的超级幸运数,。
样例输入1 复制
47 4500
样例输出1
47 4747 解法:暴力搜索,当然还是害怕超int,所以一次性打表出来查询
#include<stdio.h> //#include<bits/stdc++.h> #include<string.h> #include<iostream> #include<math.h> #include<sstream> #include<set> #include<queue> #include<map> #include<vector> #include<algorithm> #include<limits.h> #define inf 0x7fffffff #define INFL 0x7fffffffffffffff #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define LL long long #define ULL unsigned long long using namespace std; LL q[10000000]; int cot; void dfs(LL x,LL y,LL sum) { if(x==y&&x) { q[++cot] = sum; } if(sum>=1e18) { return ; } else { dfs(x+1,y,sum*10+4); dfs(x,y+1,sum*10+7); } } int main() { dfs(0,0,0); sort(q+1,q+cot+1); int t; LL n; // cin>>t; while(cin>>n) { int x = lower_bound(q+1,q+cot+1,n) - q ; if(n > q[cot]) cout<<"44444444447777777777"<<endl; else cout<<q[x]<<endl; } return 0; }
喵哈哈村的狼人杀大战(3)
描述喵哈哈村最近热衷于玩一个叫做狼人杀的游戏!
昊昊同学今天他抽到的是平民的身份,按照他的一贯玩法,他喜欢挂机,就什么事儿都不干。
于是他早早的就被推出去了。
现在他很无聊,于是他想了一道题来给自己打发时间。
定义f(x)=abs(ax^3+bx^2+cx+d),abs为绝对值符号。
给你a,b,c,d,l,r。
他想知道[l,r]这个范围内,f(x)的最大值。
输入
题目包含多组测试数据。
第一行六个整数,a,b,c,d,l,r。
满足-10<=a,b,c,d<=10,-100<=l<=r<=100
输出
对于每组测试诗句,输出最大值,需要保留两位小数。
样例输入1 复制
1 2 3 4 5 6
样例输出1
310.00 解法:数据量很小,遍历一次就好了
#include<stdio.h> //#include<bits/stdc++.h> #include<string.h> #include<iostream> #include<math.h> #include<sstream> #include<set> #include<queue> #include<map> #include<vector> #include<algorithm> #include<limits.h> #define inf 0x7fffffff #define INFL 0x7fffffffffffffff #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define LL long long #define ULL unsigned long long using namespace std; const int M = 3000500; int p[400010], pNum; bool f[M]; void Prime() { int i, j; for(i = 2; i < M; i++) { if(!f[i]) { p[pNum++] = i; } for(j = 0; j < pNum && p[j] * i < M; j++ ) { f[p[j]*i] = 1; if(!(i%p[j])) break; } } } int main() { // Prime(); // cout<<p[0]<<endl; double a,b,c,d,l,r; while(cin>>a>>b>>c>>d>>l>>r) { double Max=-1.0; for(int i=l;i<=r;i++) { Max=max(abs(i*i*i*a+b*i*i+c*i+d),Max); } printf("%.2f\n",Max); } return 0; }
喵哈哈村的狼人杀大战(4)
描述喵哈哈村最近热衷于玩一个叫做狼人杀的游戏!
徐元帅同学今天他抽到的是女巫的身份,按照他的一贯玩法,他喜欢一开始就把自己毒死。
于是他早早的就出去了。
他很无聊,于是出了一道题给自己玩。
他从怀里面掏出了一个数字n。
他想知道有多少组三元组(a,b,c),满足a<=b<=c,且a,b,c都是素数,而且a+b+c=n。
输入
本题包含若干组测试数据。
每组测试数据只含有一个整数n。
1<=n<=10000
输出
输出三元组的数量。
样例输入1 复制
3 9
样例输出1
0 2 解法:先选出素数,然后化成a+b=n-c进行查询,不过要满足a<=b<=c,还需要保存比较一下
#include<stdio.h> //#include<bits/stdc++.h> #include<string.h> #include<iostream> #include<math.h> #include<sstream> #include<set> #include<queue> #include<map> #include<vector> #include<algorithm> #include<limits.h> #define inf 0x7fffffff #define INFL 0x7fffffffffffffff #define lson l,m,rt<<1 #define rson m+1,r,rt<<1|1 #define LL long long #define ULL unsigned long long using namespace std; const int M = 200000; int p[M], pNum; bool f[M]; int x[M]; int y[M]; void Prime() { int i, j; for(i = 2; i < M; i++) { if(!f[i]) { p[pNum++] = i; } for(j = 0; j < pNum && p[j] * i < M; j++ ) { f[p[j]*i] = 1; if(!(i%p[j])) break; } } } int main() { Prime(); int n; while(cin>>n) { //n=o; memset(x,0,sizeof(x)); memset(y,0,sizeof(y)); int num=0; for(int i=0;i<=2000;i++) { if(n>=p[i]) { x[n-p[i]]++; y[n-p[i]]=p[i]; } else { break; } } for(int i=0;i<=2000;i++) { for(int j=i;j<=2000;j++) { int ans=p[i]+p[j]; if(p[j]<=y[ans]) { num+=x[ans]; } else if(ans>n) { break; } } } cout<<num<<endl; } return 0; }
相关文章推荐
- 喵哈哈村的魔法考试 Round #5 (Div.2) 题解
- 喵哈哈村的魔法考试 Round #1 (Div.2) 题解
- 喵哈哈村的魔法考试 Round #2 (Div.2) 题解
- 喵哈哈村的魔法考试 Round #9 (Div.2) 题解
- 喵哈哈村的魔法考试 Round #1 (Div.2) C 喵哈哈村的魔法石(II) 背包dp
- 喵哈哈村的魔法考试 Round #10 (Div.2) 题解
- 喵哈哈村的魔法考试 Round 16 (Div.2) 比赛题解
- 喵哈哈村的魔法考试 Round #1 (Div.2) ABCD
- 喵哈哈村的魔法考试 Round #19 (Div.2) 题解
- 喵哈哈村的魔法考试 Round #3 (Div.2) ABCDE
- 喵哈哈村的魔法考试 Round #8 (Div.2) 题解
- 喵哈哈村的魔法考试 Round #3 (Div.2) 题解
- 喵哈哈村的魔法考试 Round #21 (Div.2) 题解
- 喵哈哈村的魔法考试 Round #14 (Div.2) 题解
- 喵哈哈村的魔法考试 Round #4 (Div.2) 题解
- 喵哈哈村的魔法考试 Round #11 (Div.2) 题解
- 喵哈哈村的魔法考试 Round #12 (Div.2) 题解
- 喵哈哈村的魔法考试 Round #15 (Div.2) 题解
- 喵哈哈村的魔法考试 Round #13 (Div.2) 题解
- 喵哈哈村的魔法考试 Round #1 (Div.2) 题解&源码(A.水+暴力,B.dp+栈)