HDU 5200/BC 36 C Trees
来源:互联网 发布:app筛子软件 编辑:程序博客网 时间:2024/04/20 20:01
其实没有官方题解说的那么麻烦(>﹏<) 直接离线处理后 开个数组模拟下即可
砍当前树时 当左右的树被砍掉时 ans就--
都没被砍掉 ans就++
#include<iostream>#include<cstdio>#include<cstring>#include<cctype>#include<cmath>#include<vector>#include<queue>#include<map>#include<algorithm>#include<set>#define scnaf scanf#define cahr char#define bug puts("bugbugbug");using namespace std;typedef long long ll;typedef unsigned long long ull;typedef pair<int,int> pii;const int mod=1000000007;const int maxn=5e4+100;const int inf=1e9;inline void RDF(int &ret) { //输入为负数 char c; int sgn; while(c != '-' && (c < '0' || c > '9')) c = getchar(); sgn = (c == '-') ? -1 : 1; ret = (c == '-') ? 0 : (c - '0'); while(c = getchar(), c >= '0' && c <= '9') ret = ret * 10 + (c - '0'); ret *= sgn;}inline void RD(int &ret) { //输入为整数 char c; do { c = getchar(); } while(c < '0' || c > '9'); ret = c - '0'; while((c = getchar()) >= '0' && c <= '9') { ret = ret * 10 + (c - '0'); }}inline void OT(int a) { //输出为正数 if(a >= 10) { OT(a / 10); } putchar(a % 10 + '0');}struct T{ int h,id; bool operator < (const T &b) const { return h<b.h; }}a[maxn],q[maxn];int tree[maxn],ans[maxn];int main(){ int n,Q; while(~scanf("%d%d",&n,&Q)) { tree[0]=tree[n+1]=-1; for(int i=0;i<n;i++) { RD(a[i].h); a[i].id=i+1; tree[i+1]=1; } sort(a,a+n); for(int i=0;i<Q;i++) { RD(q[i].h); q[i].id=i; } sort(q,q+Q); int cnt=0,anss=1; for(int i=0;i<Q;i++) { while(cnt<n&&a[cnt].h<=q[i].h) { int now=a[cnt].id; tree[now]=-1; if(tree[now-1]==tree[now+1]) if(tree[now-1]==-1) anss--; else anss++; cnt++; } ans[q[i].id]=anss; } for(int i=0;i<Q;i++) { //cout<<ans[i]<<endl; OT(ans[i]);puts(""); } }}
0 0
- HDU 5200/BC 36 C Trees
- BC C Revenge of Collinearity hdu 5020
- HDU 4958/BC 5C Poor Rukaw
- HDU 5060/BC 12C War
- hdu 5607 /BC 68C graph
- HDU 5602/BC 67C Black Jack
- HDU 4909 / BC 3C String
- HDU 4991 / BC 8C Ordered Subsequence
- HDU 5084/BC 15C HeHe
- HDU 5778/BC 85C abs
- HDU 5433/BC 54C Geometric Progression
- HDU 5200 Trees
- hdu 5200 Trees
- HDU 5198 /BC 36A Strange Class
- HDU 5199/BC 36B Gunner
- HDU 5200 - Trees (离线 + 思维)
- HDU - 5200 - Trees (upper_bound)
- hdu 5200 trees(离线处理)
- [LeetCode-283] Move Zeroes(移动零元素)
- ocp-v13-036
- HDU 5469(Antonidas-树上匹配字符串)
- 九大内置对象
- ocp-v13-037
- HDU 5200/BC 36 C Trees
- ocp-v13-038
- 协方差计算方法
- Mac OS X 中 HomeBrew 国内镜像,有其他福利!
- 适配器模式
- OCP-V13-039
- OCP-V13-040
- 基础数据结构--队列链表实现
- SearchViewApplication