[NOIP模拟]鸭舌
来源:互联网 发布:设备管理器中没有端口 编辑:程序博客网 时间:2024/04/29 14:57
题目描述:
样例输入1:
5
1 3 1 3 2
2 5
3 4
4 5
1 5
4
样例输出1:
6
样例输入 2:
3
2 1 1
3 2
1 2
3
样例输出 2:
2
数据规模:
对于 30% 的数据:n≤5;ai≤5;
对于 100% 的数据:1≤n≤100000;0≤ai≤109;1≤x≤n。
附代码:
#include<iostream>#include<cstring>#include<cstdlib>#include<cstdio>#include<ctime>#include<queue>#include<string>#include<cmath>#include<cctype>#include<set>#include<map>#include<iomanip>#include<algorithm>#include<vector>using namespace std;const int N=100010;long long tot,t,n,f[N],a[N],go[N*2],next[N*2],first[N];void create(long long a,long long b){ tot++; next[tot]=first[a]; first[a]=tot; go[tot]=b;}void work(long long x,long long fa){ long long j,tot=0; vector<long long>vec; if(a[x]==0) return; for(long long i=first[x];i;i=next[i]) if(go[i]!=fa) { work(go[i],x); vec.push_back(f[go[i]]); tot++; } sort(vec.begin(),vec.end()); a[x]--; f[x]=1; for(long long i=tot;i>=1;i--) { j=vec[i-1]; if(a[x]==0) break; if(j!=0) { f[x]+=j+1; a[x]--; } else break; } for(long long i=first[x];i;i=next[i]) if(go[i]!=fa) { j=min(a[x],a[go[i]]); a[x]-=j; f[x]+=2*j; }}int main(){ //freopen("tongue.in","r",stdin); //freopen("tongue.out","w",stdout); scanf("%I64d",&n); for(long long i=1;i<=n;i++) scanf("%I64d",&a[i]); for(long long i=1;i<=n-1;i++) { long long x,y; scanf("%I64d%I64d",&x,&y); create(x,y); create(y,x); } scanf("%I64d",&t); a[t]++; work(t,0); printf("%I64d",f[t]-1); return 0;}
阅读全文
2 0
- [NOIP模拟]鸭舌
- [NOIP2017模拟]鸭舌
- Noip模拟
- 【NOIP模拟】20151004模拟
- 【NOIP模拟】 20151005模拟
- 【NOIP模拟】 20151006模拟
- 【NOIP模拟】 20151007模拟
- 【NOIP模拟】20151014模拟
- 【NOIP模拟】20151015模拟
- 【09 NOIP 模拟】light
- [NOIP模拟]Day1
- 8.9CH NOIP模拟
- 8.10FCH NOIP模拟
- 8.13NOIP模拟
- 8.14NOIP模拟
- noip模拟赛 双城记
- Noip模拟总结
- 【noip模拟赛】密码
- 【Linux】中的NAT技术与代理服务器
- shell脚本--符号篇
- AppDelegate->Application->ApplicationProtocol
- Qt属性动画之QPropertyAnimation
- Javascript中document.execCommand()的用法
- [NOIP模拟]鸭舌
- redis、zookeeper分布式锁的实现
- springMVC对静态资源访问的处理
- DockerXScan——Docker镜像漏洞扫描器
- 命名空间namespace小结
- JVM高级特性与实践(三):垃圾收集算法 与 垃圾收集器实现
- 面向对象3---static,制作帮助文档,代码块
- 剑指offer--数组中出现次数超过一半的数
- Hadoop好友推荐系统-执行聚类算法