2016 Personal Training #11 Div.2 B G J
来源:互联网 发布:seo整站优化外包服务 编辑:程序博客网 时间:2024/06/14 07:29
UVALive 5963
题意:给你n个数,如果这n个数满足:例如n=4第一个数前面有0个数后面有三个数那么这第一个位置数可以为0或者3,第二个位置可以为1或2等等。给出的n个数满足则输出yes否则no
思路:将所有的数转换为前一半n/2的数,然后遍历数看看是否都出现两次,当然还有奇偶判断毕竟中间那个数可能只有一个。
代码如下:
#include<bits/stdc++.h>using namespace std;typedef long long LL;#define INF 0x3f3f3f3fint a[1000005],vis[1000005];int main(){ int n,t,Case=1; scanf("%d",&t); while(t--) { scanf("%d",&n); memset(vis,0,sizeof(vis)); for(int i=0;i<n;i++) { scanf("%d",&a[i]); vis[min(a[i],n-1-a[i])]++; } int flag=0; for(int i=0;i<(n-1)/2;i++) { if(vis[i]!=2) { flag=1;break; } } printf("Case %d: ",Case++); if(flag) printf("no\n"); else { if(n%2) { if(vis[(n-1)/2]!=1) printf("no\n"); else printf("yes\n"); } else { if(vis[n/2-1]!=2) printf("no\n"); else printf("yes\n"); } } }}UVALive 5968
题意:给你一个字符串然后输出X/Y,X表示有多少个字符'S'后面跟着'S',Y表示有多少个字符'S'后面连着其他字符并且最后连着一个'S'。
思路:直接遍历处理即可。
代码如下:
#include<bits/stdc++.h>using namespace std;typedef long long LL;#define INF 0x3f3f3f3fchar str[105];int vis[105];int main(){ int n; while(~scanf("%d",&n)) { int Case=1; for(int k=0;k<n;k++) { cin>>str; int len=strlen(str); int a=0,b=0;memset(vis,0,sizeof(vis)); for(int i=0;i<len;i++) { if(vis[i]) continue; if(str[i]=='S') { vis[i]=1; for(int j=i+1;j<len;j++) { if(str[j]=='S') { if(j==i+1) a++; else b++; break; } if(j==len-1) b++; vis[j]=1; } } } printf("Case %d: %d / %d\n",Case++,a,b); } }}UVALive 5971
题意:给定一个数n,求1~n这些数构成的排列并且排列中不允许有x和x+1连在一起,输出这样的排列有多少个。
思路:模拟几次之后发现是有规律的即公式:x[i-2]*(i-2)+x[i-1]*(i-1),其中x[1]=1,x[2]=1;
代码如下:
#include<bits/stdc++.h>using namespace std;typedef long long LL;#define INF 0x3f3f3f3fLL M=1000000007;LL a[1000005];int main(){ int t,n,Case=1; a[1]=1;a[2]=1; for(int i=3;i<=1000001;i++) { a[i]=((a[i-1]*(i-1))%M+(a[i-2]*(i-2))%M)%M; } scanf("%d",&t); while(t--) { scanf("%d",&n); printf("Case %d: %lld\n",Case++,a[n]); }}
0 0
- 2016 Personal Training #11 Div.2 B G J
- 2016 Personal Training #6 Div.2 G
- 2016 Personal Training #5 Div.2 Gym 100637J
- 2016 Personal Training #4 Div.2 A B C G H
- 2016 Personal Training #8 Div.2 A B H
- 2016 Personal Training #6 Div.2
- 2016 Personal Training #9 Div.2
- 2016 Personal Training #1 Div.2 D - 1D Cafeteria (B) Gym 100989D
- 2016 Personal Training #8 Div.2 I - Lucky Numbers CodeForces 95B
- 2016 Personal Training #2 Div.2 SPOJ AMR11A
- 2016 Personal Training #3 Div.2 SGU 409
- 2016 Personal Training #7 Div.2 CodeForces 589A Email Aliases
- CUIT ACM Personal Training 11.27(FM)J - Building Permutation
- CUIT ACM Personal Training 11.27(FM)B - IQ Test
- UESTC 2016 Summer Training #1 Div.2 J - Objects Panel (A) dfs、按条件遍历树、interesting
- UESTC 2016 Summer Training #4 Div.2 B - ฅ(*`ω´*)ฅ 有趣的思维题
- Codeforces Round #123 (Div. 2) B - After Training
- CUIT ACM Personal Training 11.27(FM)G - Increase and Decrease
- for(条件1;条件2;条件3)
- #114 Unique Paths
- **YII** 系列十一应用结构中的模块
- Head First 观察者模式
- 在shell脚本里使用sftp批量传送文件
- 2016 Personal Training #11 Div.2 B G J
- Leecode题集——sqrtx
- HDU.4605 Magic Ball Game
- MPTCP 源码分析(0) MPTCP 理解
- Activiti(二)——部署流程资源的三种方式
- 基于tcl tk 的HyperView二次开发实例【2】
- hdu 5807 Keep In Touch
- 《一个操作系统的实现》学习笔记6
- 搭建linux下的深度学习开发环境