Codeforces Round #660 (Div. 2)

A - Captain Flint and Crew Recruitment

刚开始还想筛法求质数,最后发现是个脑筋急转弯

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#define debug(x) cout<<#x<<": "<<x<<" "
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{IO;int T;cin>>T;while(T--){int x;cin>>x;if(x>30) {cout<<"YES"<<endl;if(x==36||x==40||x==44) cout<<6<<" "<<10<<" "<<15<<" "<<x-31<<endl;else cout<<6<<" "<<10<<" "<<14<<" "<<x-30<<endl;}else cout<<"NO"<<endl;}return 0;
}

B - Captain Flint and a Long Voyage

999的二进制是100110011001888的二进制是100010001000,想要删去后剩下数最大只能让二进制位数最长,因此只能用9和8拼凑,分析可知到剩下数最大时原数最小是⌈n4⌉\lceil \frac{n}{4} \rceil4n888n−⌈n4⌉n-\lceil \frac{n}{4} \rceiln4n个9组成。

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#define debug(x) cout<<#x<<": "<<x<<" "
#include<iostream>
#include<algorithm>
int main()
{IO;int T;cin>>T;while(T--){int n;cin>>n;int a=(n+3)/4,b=n-a;while(b--) cout<<9;while(a--) cout<<8;cout<<endl;}return 0;
}

刚开始做完不敢提交,怕掉分,结果做了两个感觉不会掉分了就全交了(已经过了50min了)tcl,最终做了两个还是掉分了,曲折是最美的???

C - Uncle Bogdan and Country Happiness

Happiness detectors are installed in each city to monitor the happiness of each person who visits the city.
这题以为不定时测幸福值,结果上面那句话是每个人只要经过该城市就会当作幸福值的测试数据。我哭了!!!
翻译一下就是每个点测的幸福值总人数是子树的总人数
那么分析可知good[u]+bad[u]=sz[u]good[u]-bad[u]=happy[u],即good[u]=happy[u]+sz[u]>>1bad[u]=sz[u]-happy[u]
不矛盾由以下条件

  • good[u]人数不能小于0并且不是小数即①good[u]>=0happy[u]+sz[u]必须是偶数
  • bad[u]人数不能小于0
  • 由于心情只能变差不能编号,那么子树中心情好的人数一定小于子树祖宗节点心情好的人数即sgood<=good[u]
#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#define debug(x) cout<<#x<<": "<<x<<" "
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int N=200010;
int h[N],e[N],ne[N],idx;
int happy[N],cnt[N];
ll sz[N],good[N],bad[N];
int n,m;
bool flag;
void add(int a,int b)
{e[idx]=b;ne[idx]=h[a];h[a]=idx++;
}
void dfs(int u,int fa)
{int sgood=0;sz[u]=cnt[u];for(int i=h[u];i!=-1;i=ne[i]){int j=e[i];if(j==fa) continue;dfs(j,u);sz[u]+=sz[j];sgood+=good[j];}good[u]=sz[u]+happy[u];if(good[u]&1||good[u]<0) flag=0;good[u]>>=1;if(good[u]<sgood) flag=0;bad[u]=sz[u]-happy[u];if(bad[u]<0) flag=0;
}
int main()
{IO;int T;cin>>T;while(T--){cin>>n>>m;for(int i=1;i<=n;i++) h[i]=-1;idx=0;for(int i=1;i<=n;i++) cin>>cnt[i];for(int i=1;i<=n;i++) cin>>happy[i];for(int i=1;i<n;i++){int a,b;cin>>a>>b;add(a,b),add(b,a);}flag=1;dfs(1,-1);if(flag) cout<<"YES"<<endl;else cout<<"NO"<<endl;}return 0;
}

这题由于没看清题,给自己造成了非常大的难度,希望以后认真看题,挖掘更多条件。

D -Captain Flint and Treasure

题中暗示说有向无环图,那么基本就是拓扑排序了,如果该位置的值大于0那么肯定先加上他,它会使后面加的值变大。输出就是如果值大于0说明对后面有影响先输出正拓扑序输出。如果值小于0那么它不能先输出否则会对后面有影响因此逆拓扑序输出。

#define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0)
#define debug(x) cout<<#x<<": "<<x<<" "
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;
const int N=200010;
int h[N],e[N],ne[N],idx;
int din[N],q[N];
ll a[N];
int n;
void add(int a,int b)
{e[idx]=b;ne[idx]=h[a];h[a]=idx++;
}
void topsort()
{int tt=-1,hh=0;for(int i=1;i<=n;i++)if(din[i]==0) q[++tt]=i;while(tt>=hh){int u=q[hh++];for(int i=h[u];i!=-1;i=ne[i]){int j=e[i];if(a[u]>0) a[j]+=a[u];if(--din[j]==0) q[++tt]=j;}}
}
int main()
{IO;memset(h,-1,sizeof h);cin>>n;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++) {int b;cin>>b;if(b!=-1){add(i,b);din[b]++;}}topsort();ll res=0;for(int i=1;i<=n;i++) res+=a[i];cout<<res<<endl;for(int i=0;i<n;i++)if(a[q[i]]>0) cout<<q[i]<<" ";for(int i=n-1;i>=0;i--) if(a[q[i]]<=0) cout<<q[i]<<" ";cout<<endl;return 0;
}

要加油哦~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/319703.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[译]ABP vNext介绍

译者注ASP.NET Boilerplate是.Net平台非常优秀的一个开源Web应用程序框架,在国内也有大量的粉丝.近日, 本人在github上闲逛, 发现ASP.NET Boilerplate团队又悄悄的建立了一个新项目: ABP vNext从名称可以看出来, 这是ASP.NET Boilerplate的下一代框架. 那么, 为什么要开发这个新…

[HAOI2008]玩具取名

[HAOI2008]玩具取名 文章目录题目描述输出描述:题解代码&#xff1a;时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 某人有一套玩具&#xff0c;并想法给玩具命名。首先他选…

【KMP】重复子串(ybtoj KMP-2)

正题 ybtoj KMP-2 题目大意 问你一个字符串最多由多少个相同的字符串组合而成 解题思路 如下图&#xff0c;先用KMP求出nx数组&#xff0c;那么有1∼nxn1\sim nx_n1∼nxn​和(n−nxn)∼n(n-nx_n)\sim n(n−nxn​)∼n相匹配 不难推出1∼(n−nxn)1\sim (n-nx_n)1∼(n−nxn​)…

P6624-[省选联考2020A卷]作业题【矩阵树定理,欧拉反演】

正题 题目链接:https://www.luogu.com.cn/problem/P6624 题目大意 nnn个点的一张图&#xff0c;每条边有权值&#xff0c;一棵生成树的权值是所有边权和乘上边权的gcdgcdgcd&#xff0c;即 val(T)(∑i1n−1wei)gcd⁡(we1,we2,…,wen−1)val(T)\left(\sum\limits_{i1}^{n-1} w_…

C# 8小特性

对于C# 8&#xff0c;有吸引了大多数注意力的重大特性&#xff0c;如默认接口方法和可空引用&#xff0c;也有许多小特性被考虑在内。本文将介绍几例可能加入C#未来版本的小特性。新的赋值运算符&#xff1a;&&和||从第一个版本开始&#xff0c;C#就支持把等号和另外一…

[HAOI2016]字符合并(ing)

[HAOI2016]字符合并 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 有一个长度为 n 的 01 串&#xff0c;你可以每次将相邻的 k 个字符合并&#xff0c;得到一个新的字符并…

AtCoder Beginner Contest 174 总结

这次做了ABDF。我也不知道我怎么做的&#xff08;乱做-.- A - Air Conditioner 签到题1 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #define debug(x) cout<<#x<<": "<<x<<" " #include<iostream> #…

【KMP】周期长度和(luogu 3435/ybtoj KMP-3)

正题 luogu 3435 ybtoj KMP-3 题目大意 定义S的proper前缀为S中非空且len<|S|的前缀&#xff0c;若Q是A的proper前缀&#xff0c;且A是QQ的前缀 现在问你字符串S所有前缀的最大周期之和 解题思路 如上图&#xff0c;对于一个字符串S&#xff0c;如果有周期Q&#xff0c;那…

P6097-[模板]子集卷积

正题 题目链接:https://www.luogu.com.cn/problem/P6097 题目大意 长度为2n2^n2n的序列a,ba,ba,b求一个ccc满足 ck∑i∣jk,i&j∅aibjc_k\sum_{i|jk,i\&j\varnothing}a_i\times b_jck​i∣jk,i&j∅∑​ai​bj​ 解题思路 从炫酷反演魔术过来的&#xff0c;顺便写…

dotnet core 开发无缝兼容Http和Websocket协议的接口服务

在应用接口开发中往往要针对不同协义开发相应的代理服务&#xff0c;但对于Websocket和http这两种协议来说就有些不同&#xff0c;从实现上来看Websocket可以说是Http的升级子协议&#xff0c; 两者在协议处理上基本一致&#xff0c;具体可以在解释Body上有所不同。FastHttpApi…

【KMP】子串拆分(ybtoj KMP-4)

正题 ybtoj KMP-4 题目大意 给出字符串S&#xff0c;问你有多少个子串满足ABA的形式&#xff0c;且∣A∣⩾k,∣B∣⩾1|A|\geqslant k,|B|\geqslant 1∣A∣⩾k,∣B∣⩾1 解题思路 可以先枚举左端点&#xff0c;然后跑KMP&#xff0c;使其满足左右两个A&#xff0c;然后判断A,…

[SDOI2008]SUE的小球

[SDOI2008]SUE的小球 文章目录题目描述题解&#xff1a;代码&#xff1a;时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 Sue和Sandy最近迷上了一个电脑游戏&#xff0c;这个…

Codeforces Round #661 (Div. 3)

A - Remove Smallest 排个序&#xff0c;如果相邻的数大于一就不满足题意 #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) #define debug(x) cout<<#x<<": "<<x<<" " #include<iostream> #include<alg…

centos7 lldb 调试netcore应用的内存泄漏和死循环示例(dump文件调试)

写个demo来玩一玩linux平台下使用lldb加载sos来调试netcore应用。当然&#xff0c;在真实的产线环境中需要分析的数据和难度远远高于demo所示&#xff0c;所以demo的作用也仅仅只能起到介绍工具的作用。通常正常情况下&#xff0c;分析个几天才能得出一个结论的的结果都还是比较…

P4450-双亲数,P5221-Product,P6055-[RC-02]GCD【莫比乌斯反演,杜教筛】

除了最后一题都比较简单就写一起了 P4450-双亲数 题目链接:https://www.luogu.com.cn/problem/P4450 题目大意 给出A,B,dA,B,dA,B,d求有多少对(a,b)(a,b)(a,b)满足gcd(a,b)dgcd(a,b)dgcd(a,b)d且a∈[1,A],b∈[1,B]a\in[1,A],b\in[1,B]a∈[1,A],b∈[1,B] 解题思路 很显然的…

【Trie】最大异或对(ybtoj Trie-2)

正题 ybtoj Trie-2 题目大意 给你n个数&#xff0c;选择2个&#xff0c;使其异或值最大 解题思路 对于每个数的二进制建立Trie&#xff0c;然后每个数在Trie中搜索&#xff0c;每次尽量走不同方向 代码 #include<cstdio> #include<cstring> #include<iostrea…

[SCOI2003]字符串折叠

[SCOI2003]字符串折叠 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld题目描述 折叠的定义如下&#xff1a; 一个字符串可以看成它自身的折叠。记作S S X(S)是X(X>1)个S连接在一…

Codeforces Round #662 (Div. 2)

就写了两个题&#xff0c;以为要掉分&#xff0c;结果早上起来发现还上分了&#xff08;说明wtcl A - Rainbow Dash, Fluttershy and Chess Coloring 无论边长是奇数还是偶数&#xff0c;考虑每次操作最外层的一圈&#xff0c;一个人操作一圈的一般&#xff0c;然后另一个人就…

.NET微服务方案调查

.NET Core就是专门针对模块化的微服务架构而设计&#xff0c;调查下大家选择.NET微服务情况&#xff0c;如果你有微服务方面的需求可以找我哦&#xff0c;可加我微信geffzhang&#xff1a;相关文章&#xff1a;Service Fabric 与Ocelot 的集成Ocelot简易教程&#xff08;二&…

Loj#116-[模板]有源汇有上下界最大流

正题 题目链接:https://loj.ac/p/116 题目大意 nnn个点mmm条边的一张图&#xff0c;每条边有流量上下限制&#xff0c;求源点到汇点的最大流。 解题思路 先别急着求上面那个&#xff0c;考虑一下怎么求无源点汇点的上下界可行流。 可以考虑先把下限流满&#xff0c;这样就会…