BZOJ 3391: [Usaco2004 Dec]Tree Cutting网络破坏(搜索)
這道直接遍歷一遍求出每個點的子節點數目就行了= =
CODE:
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
#define maxn 50010
int b[maxn],q[maxn],id[maxn],ans[maxn];
bool cmp(int x,int y){return q[x]<q[y];}
int main(){
?int n,Q;
?scanf("%d%d",&n,&Q);
?for (int i=1;i<=n;i++) scanf("%d",b+i);
?for (int i=1;i<=Q;i++) scanf("%d",q+i);
?for (int i=1;i<=Q;i++) id[i]=i;
?sort(id+1,id+1+Q,cmp);
?int h=1,t=0;
?for (int i=1;i<=n;i++) {
??t+=b[i];
??while (q[id[h]]<t&&h<=Q) ans[id[h++]]=i;
?}
?for (int i=1;i<=Q;i++) printf("%d\n",ans[i]);
?return 0;
}
轉載于:https://www.cnblogs.com/New-Godess/p/4348946.html
總結
以上是生活随笔為你收集整理的BZOJ 3391: [Usaco2004 Dec]Tree Cutting网络破坏(搜索)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华硕B365能装服务器系统吗,原生支持W
- 下一篇: Fast Matrix Operatio