博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #263 (Div. 2)
阅读量:4964 次
发布时间:2019-06-12

本文共 2600 字,大约阅读时间需要 8 分钟。

 吐槽:一辈子要在DIV 2混了。

A,B,C都是简单题,看AC人数就知道了。

A:如果我们定义数组为N*N的话就不用考虑边界了

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 using namespace std;10 #define inf 0x3f3f3f11 #define N 1234512 typedef long long ll;13 int a[N];14 char s[123][123];15 int main()16 {17 int n;18 scanf("%d",&n);19 for (int i=1;i<=n;i++)20 scanf("%s",s[i]+1);21 22 int flag=1;23 for (int i=1;i<=n;i++)24 for (int j=1;j<=n;j++){25 int ans=0;26 if (s[i-1][j]=='o') ans++;27 if (s[i][j-1]=='o') ans++;28 if (s[i][j+1]=='o') ans++;29 if (s[i+1][j]=='o') ans++;30 if (ans&1) {flag=0;break;}31 }32 33 if (flag) printf("YES");34 else printf("NO");35 return 0;36 }

B:语文实在...。。

可以是贪心。。。

只要对26个字母排序

233

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 using namespace std;10 #define inf 0x3f3f3f11 #define N 12345612 typedef long long ll;13 ll a[N];14 string s;15 int main()16 {17 int n;18 ll k;19 cin>>n>>k;20 cin>>s;21 for (int i=0;i
=0;i--)26 {27 if (k>=a[i]) {ans+=a[i]*a[i];k-=a[i];28 }29 else {ans+=k*k;break;}30 }31 cout<
<

这题也是贪心做法。。

因为我们要加的数的个数是一定的。。。

如果排序好,尽量加大的,就OK了。。所以每次我们把最小的踢出去。

就可以算出每个数要加多少。

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 using namespace std;10 #define inf 0x3f3f3f11 #define N 32345612 typedef long long ll;13 ll a[N];14 string s;15 int main()16 {17 int n;18 cin>>n;19 for (int i=1;i<=n;i++)cin>>a[i];20 ll ans=0;21 sort(a+1,a+n+1);22 for (int i=1;i

D:练了不少树形DP了,但是这题完全没思路。真是渣一辈子DIV 2。

思路:定义DP[I][1]表示以I为根的数中有BLACK节点

              DP[I][0]表示没有BLACK节点。。

转移方程

U是ROOT的子节点

初始:DP[ROOT][COLOR[ROOT]]=1;

DP[ROOT][1]=DP[ROOT][1]*DP[U][1]+DP[ROOT][0]*DP[U][1]+DP[ROOT][1]*DP[U][0];

DP[ROOT][0]=DP[ROOT][0]*DP[U][0]+DP[ROOT][0]*DP[U][1];

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #define N 112345 9 #define inf 100000000710 typedef long long ll;11 using namespace std;12 vector
G[N];13 ll dp[N][2];14 int col[N];15 int n;16 17 18 void dfs(int root,int pre)19 {20 dp[root][col[root]]=1;21 for (int i=0;i

 

后记:

树形DP比较抽象。。。多做题才能提高

 

转载于:https://www.cnblogs.com/forgot93/p/3939231.html

你可能感兴趣的文章
luogu P2617 Dynamic Rankings(主席树)
查看>>
MongoDB 安装与配置
查看>>
Linux 常用命令
查看>>
MySQL查询
查看>>
MongoDB(四)——管理架构
查看>>
Python用subprocess的Popen来调用系统命令
查看>>
深入浅出谈开窗函数(一)
查看>>
QlikView实现部分载入数据的功能(Partial Load)
查看>>
Rail Fullstack Web 开发
查看>>
英文Windows系统打开带中文TXT出现乱码
查看>>
基于nodeJS的小说爬虫实战
查看>>
Failed to start component [StandardEngine[Tomcat].StandardHost[localhost]]
查看>>
Celery
查看>>
OSX 10.13 以后实现终端FTP命令(转)
查看>>
eclipse tomcat jdk 版本引用
查看>>
xshell 自动登录与自动跳转
查看>>
POJ 2728 Desert King
查看>>
开源的 Restful Api 集成测试工具 Hitchhiker
查看>>
人工智能时代架构设计还有没有价值
查看>>
炼数成金数据分析课程---18、降维技术(后面要重点看)
查看>>