Codeforces Round #191 (Div. 2)
好久没写过CF的博客了,最近忙着考试,各种不顺,没想到这次CF却是很顺利。
A题暴力,开始看错题了。。然后发现只需要转一次。。。B题也是暴力去构造的,C题一个组合问题,话说这次终于在比赛里把组合题给A了,这题不难,但也不是很水,当时就是觉得应该是这样,感觉题意也不是很清楚,按自己的理解过了样例,应该就没问题了,用到以前用过的等比数列求和取余的模版。D题也是构造问题,只要看出一个连通块,只要一个100塔其他都是200塔就行了。DIV2里,第一次做了4个题。。
rating涨了181。。如果我之前的rating 是蓝色,而不是绿色的话,这次就可以变紫了把。。。以后还有机会,慢慢来把。
A题
1 #include <cstdio> 2 #include <string> 3 #include <algorithm> 4 #include <cstring> 5 #include <map> 6 #include <vector> 7 using namespace std; 8 int p[1001],sum[1001]; 9 int main() 10 { 11 int n,i,ans,j; 12 scanf("%d",&n); 13 for(i = 1;i <= n;i ++) 14 { 15 scanf("%d",&p[i]); 16 sum[i] = sum[i-1] + p[i]; 17 } 18 ans = 0; 19 for(i = 1;i <= n;i ++) 20 { 21 for(j = i;j <= n;j ++) 22 { 23 ans = max(ans,sum[i-1]+sum[n]-sum[j]+(j-i+1-(sum[j]-sum[i-1]))); 24 } 25 } 26 printf("%d\n",ans); 27 return 0; 28 }
B题
1 #include <cstdio> 2 #include <string> 3 #include <algorithm> 4 #include <cstring> 5 #include <map> 6 #include <vector> 7 #include <cstdlib> 8 #include <time.h> 9 using namespace std; 10 #define N 3000000 11 int o[N+10]; 12 int main() 13 { 14 int n,j,num,i; 15 scanf("%d",&n); 16 for(i = 1,num = 2;i <= n;i ++) 17 { 18 while(o[num]) 19 num ++; 20 if(i == 1) 21 printf("%d",num); 22 else 23 printf(" %d",num); 24 for(j = num;j <= N;j += num) 25 { 26 o[j] = 1; 27 } 28 num ++; 29 } 30 printf("\n"); 31 return 0; 32 }
C题
1 #include <cstdio> 2 #include <string> 3 #include <algorithm> 4 #include <cstring> 5 #include <map> 6 #include <vector> 7 #include <cstdlib> 8 #include <time.h> 9 using namespace std; 10 #define N 3000000 11 #define MOD 1000000007 12 #define LL __int64 13 char str[200001]; 14 LL bin[200001]; 15 LL fastmod(LL p,LL k) 16 { 17 LL sum = 1,tmp = p; 18 while (k) 19 { 20 if (k%2 == 1) sum = (sum*tmp)%MOD; 21 tmp = (tmp*tmp)%MOD; 22 k = k/2; 23 } 24 return sum; 25 } 26 LL getnum(LL p,LL k) 27 { 28 if (k <= 0) return 1; 29 if (k%2 == 0) 30 return ((getnum(p,k/2 - 1)%MOD)*((1 + fastmod(p,k/2 + 1))%MOD) + fastmod(p,k/2)%MOD)%MOD; 31 else 32 return ((getnum(p,(k + 1)/2 - 1)%MOD)*((1 + fastmod(p,(k + 1)/2))%MOD))%MOD; 33 } 34 int main() 35 { 36 int n,i; 37 LL ans = 0,temp,k; 38 scanf("%s%I64d",str,&k); 39 n = strlen(str); 40 bin[0] = 1; 41 for(i = 1;i <= n;i ++) 42 { 43 bin[i] = (bin[i-1]*2)%MOD; 44 } 45 temp = getnum(bin[n],k-1); 46 for(i = n-1;i >= 0;i --) 47 { 48 if(str[i] == '0'||str[i] == '5') 49 { 50 ans = (ans + bin[i]*temp)%MOD; 51 } 52 } 53 printf("%I64d\n",ans); 54 return 0; 55 }
D题
1 #include <cstdio> 2 #include <string> 3 #include <algorithm> 4 #include <cstring> 5 #include <map> 6 #include <vector> 7 #include <cstdlib> 8 #include <time.h> 9 using namespace std; 10 char p[501][501]; 11 int o[501][501]; 12 int a[4] = {0,0,1,-1}; 13 int b[4] = {1,-1,0,0}; 14 int q1[5000001],q2[5000001],q3[5000001]; 15 int z,n,m,num = 0; 16 void dfs(int x,int y) 17 { 18 int i,f = 0; 19 if(z) 20 { 21 z = 0; 22 f = 1; 23 } 24 else 25 { 26 q1[num] = 1; 27 q2[num] = x+1; 28 q3[num] = y+1; 29 num ++; 30 //printf("B %d %d\n",x+1,y+1); 31 } 32 for(i = 0; i < 4; i ++) 33 { 34 if(x+a[i] >= 0&&x+a[i] < n&&y+b[i] >= 0&&y+b[i] < m&&!o[x+a[i]][y+b[i]]&&p[x+a[i]][y+b[i]] == '.') 35 { 36 o[x+a[i]][y+b[i]] = 1; 37 dfs(x+a[i],y+b[i]); 38 } 39 } 40 if(f == 0) 41 { 42 q1[num] = 2; 43 q2[num] = x+1; 44 q3[num] = y+1; 45 num ++; 46 //printf("D %d %d\n",x+1,y+1); 47 q1[num] = 3; 48 q2[num] = x+1; 49 q3[num] = y+1; 50 num ++; 51 //printf("R %d %d\n",x+1,y+1); 52 } 53 } 54 int main() 55 { 56 int i,j; 57 scanf("%d%d",&n,&m); 58 for(i = 0; i < n; i ++) 59 scanf("%s",p[i]); 60 for(i = 0; i < n; i ++) 61 { 62 for(j = 0; j < m; j ++) 63 { 64 if(p[i][j] == '.'&&!o[i][j]) 65 { 66 o[i][j] = 1; 67 q1[num] = 1; 68 q2[num] = i+1; 69 q3[num] = j+1; 70 num ++; 71 //printf("B %d %d\n",i+1,j+1); 72 z = 1; 73 dfs(i,j); 74 } 75 } 76 } 77 printf("%d\n",num); 78 for(i = 0; i < num; i ++) 79 { 80 if(q1[i] == 1) 81 printf("B"); 82 else if(q1[i] == 2) 83 printf("D"); 84 else 85 printf("R"); 86 printf(" %d %d\n",q2[i],q3[i]); 87 } 88 return 0; 89 }
转载于:https://www.cnblogs.com/naix-x/p/3173079.html
Codeforces Round #191 (Div. 2)相关推荐
- 贪心 Codeforces Round #191 (Div. 2) A. Flipping Game
题目传送门 1 /* 2 贪心:暴力贪心水水 3 */ 4 #include <cstdio> 5 #include <algorithm> 6 #include <cs ...
- A. Flipping Game(思维)Codeforces Round #191 (Div. 2)
原题链接:https://codeforces.com/problemset/problem/327/A 题意:问选择区间反转一次之后序列中最大还有多少的1? 解题思路:此题我们需要遍历序列统计最大值 ...
- Codeforces Round #191 (Div. 2) A. Flipping Game【*枚举/DP/每次操作可将区间[i,j](1=i=j=n)内牌的状态翻转(即0变1,1变0),求一...
A. Flipping Game time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- Codeforces Round #191 (Div.2) 题解
A B C D E 这场打的很爽,题目质量很高. A 给一个01序列,能将一个子串取反,求整个序列的最多1的个数. 数据范围很小,暴力枚举所有子串取反,求最大的值即可. #include<bit ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #563 (Div. 2)/CF1174
Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...
- 构造 Codeforces Round #302 (Div. 2) B Sea and Islands
题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...
- Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...
- Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...
最新文章
- Science:固氮(The nitrogen fix)
- AI工程师面试知识点:TensorFlow 框架
- validating和validated的区别
- wxpython使用folium_wxPython实现文本框基础组件
- UA MATH567 高维统计IV Lipschitz组合3 高斯分布的Lipschitz函数
- Hyper-V安装ReactOS未成功
- 【全球年青人召集令】Hello World,Hello 2050
- 详解DPoS共识算法
- ezdpl Linux自动化部署实战
- php copy 文件夹,php删除与复制文件夹及其文件夹下所有文件的实现代码
- python—while循环、字符串
- 构建之法第一、二、十六章
- 数据结构与算法之--高级排序:shell排序和快速排序
- 掩膜裁剪tif步骤_使用Arcgis掩膜剪裁工具剪裁全球气候数据为我国范围,并转换为ASC格式...
- 【知识索引】【汇编语言】
- python基础1-字符串
- 嵌入式Linux编程--我的第一次艰难跋涉
- 应届毕业生,只会抄代码,该怎么办?
- 2018大华软件竞赛——模拟赛——第二题
- (II)第二节:HelloWordl 案例