2020-2021 ACM-ICPC, Asia Seoul Regional Contest
C. Dessert Café:
题意: 给你一个N个节点的树,树上有m个房子,问树上有几个节点是在两个房子之间的。
思路:我们发现只要是该节点的子树里包括了所有节点或者只有一个节点,那么这个结点肯定不是在两个房子之间的,至于证明我们可以画几幅图证明。代码实现的话,需要用到num[]数组记录该节点子树里房子个数,然后dfs一边即可。
代码:
int n,k;
vector<int>mp[maxn];
int num[maxn];
bool isA[maxn];
int ans=0;
void dfs(int u,int f)
{
int cnt=0;
for(int i=0;i<mp[u].size();i++)
{
int v=mp[u][i];
if(v!=f)
{
dfs(v,u);
num[u]+=num[v];
if(num[v]) cnt++;
}
}
if(num[u]!=k) cnt++;
//dbg(u);
if(cnt>=2&&!isA[u]) ans++;
//dbg(ans);
}
void run()
{
n=rd();
k=rd();
for(int i =1;i<n;i++)
{
int u=rd(),v=rd(),w=rd();
mp[u].push_back(v);
mp[v].push_back(u);
}
for(int i=0;i<k;i++)
{
int x=rd();
num[x]=1;
isA[x]=true;
ans++;
//cout<<ans<<" sss"<<endl;
}
dfs(1,-1);
cout<<ans<<endl;
}
signed main()
{
run();
return 0;
}
E - Imprecise Computer
思路:通过分析不难发现如果前面产生了1>2的错误判断,那么这个错误会一直影响到最后,然后我们只要在产生这样错误后对后面的d +1或者-1 直到最后消除影响,那么就可以构造成功,而且中途是不能出现d>=2 的情况。
代码实现:
int n;
int d[maxn];
void run()
{
n=rd();
for(int i=1;i<=n;i++) d[i]=rd();
bool flag=true;
for(int i=1;i<=n;i++)
{
if(d[i]>1) {
puts("NO");
return ;
}else if(d[i])
{
if(d[i+1]) d[i+1]--;
else d[i+1]--;
}
}
puts(d[n]==0?"YES":"NO");
}
signed main()
{
// int t=rd();
// while(t--)
run();
return 0;
}
2020-2021 ACM-ICPC, Asia Seoul Regional Contest的更多相关文章
- ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków
ACM ICPC Central Europe Regional Contest 2013 Jagiellonian University Kraków Problem A: Rubik’s Rect ...
- 2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred)
2019-2020 ICPC, Asia Jakarta Regional Contest (Online Mirror, ICPC Rules, Teams Preferred) easy: ACE ...
- 2019-2020 ICPC, Asia Jakarta Regional Contest
目录 Contest Info Solutions A. Copying Homework C. Even Path E. Songwriter G. Performance Review H. Tw ...
- 2019-2020 ICPC, Asia Jakarta Regional Contest H. Twin Buildings
As you might already know, space has always been a problem in ICPC Jakarta. To cope with this, ICPC ...
- 2018-2019 ACM-ICPC, Asia Seoul Regional Contest
ProblemA Circuits Solved. 题意: 有$n$个矩形,可以放两条平行与$x$轴的线,求怎么放置两条无线长的平行于$x$轴的线,使得他们与矩形相交个数最多 如果一个矩形同时与两条线 ...
- 2018-2019, ICPC, Asia Yokohama Regional Contest 2018 K
传送门:https://codeforces.com/gym/102082/attachments 题解: 代码: /** * ┏┓ ┏┓ * ┏┛┗━━━━━━━┛┗━━━┓ * ┃ ┃ * ┃ ━ ...
- 2018 ICPC Asia Jakarta Regional Contest
题目传送门 题号 A B C D E F G H I J K L 状态 Ο . . Ο . . Ø Ø Ø Ø . Ο Ο:当场 Ø:已补 . : 待补 A. Edit Distance Thin ...
- Gym - 101981K The 2018 ICPC Asia Nanjing Regional Contest K.Kangaroo Puzzle 暴力或随机
题面 题意:给你1个20*20的格子图,有的是障碍有的是怪,你可以每次指定上下左右的方向,然后所有怪都会向那个方向走, 如果2个怪撞上了,就融合在一起,让你给不超过5w步,让所有怪都融合 题解:我们可 ...
- Gym - 101981M The 2018 ICPC Asia Nanjing Regional Contest M.Mediocre String Problem Manacher+扩增KMP
题面 题意:给你2个串(长度1e6),在第一个串里找“s1s2s3”,第二个串里找“s4”,拼接后,是一个回文串,求方案数 题解:知道s1和s4回文,s2和s3回文,所以我们枚举s1的右端点,s1的长 ...
- Gym - 101981G The 2018 ICPC Asia Nanjing Regional Contest G.Pyramid 找规律
题面 题意:数一个n阶三角形中,有多少个全等三角形,n<=1e9 题解:拿到题想找规律,手画开始一直数漏....,最后还是打了个表 (打表就是随便定个点为(0,0),然后(2,0),(4,0), ...
随机推荐
- IOS键盘收起后,页面底部留白处理
环境:vue+vant 的H5页面 场景:输入框输入信息时,如登录.注册等表单信息 问题:键盘收回后页面底部留白,导致dialog组件按钮位移,视觉上,其中的按钮无法正常工作 解决方案:监听失去焦点时 ...
- Python求二维数组中某列的最大值
主要运用np.amax() import numpy as np help(np.amax) a = np.arange(9).reshape((3, 3)) max_all = np.amax(a) ...
- VuePress & Markdown Slot
VuePress & Markdown Slot refs https://vuepress.vuejs.org/zh/guide/markdown-slot.html#为什么需要-markd ...
- Promise.allSettled & Promise.all & Promise.race & Promise.any All In One
Promise.allSettled & Promise.all & Promise.race & Promise.any All In One new Promise(), ...
- SSL/TLS All In One
SSL/TLS All In One HTTPS SSL/TLS 的工作原理 https://www.websecurity.digicert.com/zh/cn/security-topics/ho ...
- Chrome & targetText
Chrome & targetText target text http://www.ruanyifeng.com/blog/2019/03/weekly-issue-47.html http ...
- taro best practice
taro best practice 最佳实践 https://taro-docs.jd.com/taro/docs/best-practice.html#关于-jsx-支持程度补充说明 https: ...
- Free Serverless
Free Serverless BFF https://cloud.google.com/functions/ 微服务 Function as a Servcie,FaaS https://segme ...
- SVG (viewBox) & DOM (viewport)
SVG (viewBox) & DOM (viewport) circle "use strict"; /** * * @author xgqfrms * @license ...
- PHP实现一个二维码同时支持支付宝和微信支付
实现思路 生成一个二维码,加入要处理的url连接 在用户扫完码后,在对应的脚本中,判断扫码终端,调用相应的支付 若能够扫码之后能唤起相应app,支付宝要用手机网站支付方式,微信要使用jsapi支付方式 ...