好久没写过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)相关推荐

  1. 贪心 Codeforces Round #191 (Div. 2) A. Flipping Game

    题目传送门 1 /* 2 贪心:暴力贪心水水 3 */ 4 #include <cstdio> 5 #include <algorithm> 6 #include <cs ...

  2. A. Flipping Game(思维)Codeforces Round #191 (Div. 2)

    原题链接:https://codeforces.com/problemset/problem/327/A 题意:问选择区间反转一次之后序列中最大还有多少的1? 解题思路:此题我们需要遍历序列统计最大值 ...

  3. 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 ...

  4. Codeforces Round #191 (Div.2) 题解

    A B C D E 这场打的很爽,题目质量很高. A 给一个01序列,能将一个子串取反,求整个序列的最多1的个数. 数据范围很小,暴力枚举所有子串取反,求最大的值即可. #include<bit ...

  5. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  6. 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 ...

  7. 构造 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 的例子可以 ...

  8. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  9. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

最新文章

  1. Science:固氮(The nitrogen fix)
  2. AI工程师面试知识点:TensorFlow 框架
  3. validating和validated的区别
  4. wxpython使用folium_wxPython实现文本框基础组件
  5. UA MATH567 高维统计IV Lipschitz组合3 高斯分布的Lipschitz函数
  6. Hyper-V安装ReactOS未成功
  7. 【全球年青人召集令】Hello World,Hello 2050
  8. 详解DPoS共识算法
  9. ezdpl Linux自动化部署实战
  10. php copy 文件夹,php删除与复制文件夹及其文件夹下所有文件的实现代码
  11. python—while循环、字符串
  12. 构建之法第一、二、十六章
  13. 数据结构与算法之--高级排序:shell排序和快速排序
  14. 掩膜裁剪tif步骤_使用Arcgis掩膜剪裁工具剪裁全球气候数据为我国范围,并转换为ASC格式...
  15. 【知识索引】【汇编语言】
  16. python基础1-字符串
  17. 嵌入式Linux编程--我的第一次艰难跋涉
  18. 应届毕业生,只会抄代码,该怎么办?
  19. 2018大华软件竞赛——模拟赛——第二题
  20. (II)第二节:HelloWordl 案例

热门文章

  1. Spring Boot 2 快速教程:WebFlux Restful CRUD 实践(三)
  2. Web前端-JavaScript基础教程上
  3. 设计模式——10.单例模式
  4. android 蓝牙低耗能(LBE)技术介绍
  5. 【观点见解】解读大数据的5个误区
  6. 【原创】new和delete
  7. bd3.2 Python高级
  8. MYSQL韩文显示正常一法
  9. jqGrid参数详解
  10. 学习Cassandra资料的一些整理