Karen and Coffee codeforces 816B
来源:互联网 发布:金融直播软件 编辑:程序博客网 时间:2024/06/05 04:55
题目大意: 给你n种咖啡的烹调方法,每种都包含了该种方法的咖啡的适宜温度,从l 到r,现在需要的咖啡至少满足k种烹调方法, 在q个询问中,每个区间[a,b]中有多少个适宜的咖啡
这道题目,n q给的是200000 显然不可能用n²的方法过,因此这道题应该用前缀和相减来做
思路:我们要知道有多少个适宜的咖啡,我们可以想到对应每种温度之前所有满足的咖啡的个数,那么只要相减,就能得到区间内的符合条件的个数
但是怎么得到每种温度对应的呢? 这就需要再用一次前缀和处理之前烹调方法,对于某一方法 [l ,r] 标记第l位为1,第r+1位为-1, 最后用前缀和处理,就可以了;
ac代码如下:
#include<cstdio>#include<cstring>#include<algorithm>#include<iostream>#include<string>#include<vector>#include<stack>#include<bitset>#include<cstdlib>#include<cmath>#include<set>#include<list>#include<deque>#include<map>#include<queue>using namespace std;typedef long long ll;const double PI = acos(-1.0);const double eps = 1e-6;const int INF = 0x3f3f3f3f;const int maxn = 200000+5;int vis[212345];int T,n,m;int v[212345];int main(){ int q,k; scanf("%d%d%d",&n,&k,&q); memset(vis,0,sizeof(vis)); memset(v,0,sizeof(v)); for(int i=1;i<=n;i++) { int l,r; scanf("%d%d",&l,&r); vis[l]++; vis[r+1]--; } for(int i=1;i<=maxn;i++) { vis[i]+=vis[i-1]; // printf("%d ",vis[i]); if(vis[i]>=k)v[i]=1; } // cout<<endl; for(int i=1;i<=maxn;i++) { v[i]=v[i-1]+v[i]; // printf("%d ",v[i]); } for(int i=1;i<=q;i++) { int s,t; scanf("%d%d",&s,&t); int ans=v[t]-v[s-1]; printf("%d\n",ans); } return 0;}
阅读全文
0 0
- Karen and Coffee codeforces 816B
- Codeforces 816 -B. Karen and Coffee
- Codeforces 816B-Karen and Coffee
- Codeforces 816B Karen and Coffee
- CodeForces B. Karen and Coffee
- Karen and Coffee 816B
- Codeforces 816B Karen and Coffee(前缀和)
- codeforces 816-B. Karen and Coffee(前缀和+思维)
- Karen and Coffee codeforces
- Codeforces#419 Karen and Coffee
- Codeforces Round #419 (Div. 2) B. Karen and Coffee
- CodeForce Round #479 B. Karen and Coffee
- Codeforces Round #419 (Div. 2) B. Karen and Coffee 预处理+技巧
- [前缀和] Codeforces Round #419 (Div. 2)B. Karen and Coffee
- CodeForces #419 Div.2 B Karen and Coffee 差分 巧妙
- Codeforces Round #419 (Div. 2) B. Karen and Coffee (差分标记)
- Codeforces Round #419 (Div. 2) B. Karen and Coffee【前缀和求区间覆盖次数】
- CF816B-Karen and Coffee
- 高级软件工程学习总结
- Git常用命令笔记
- 关于VMware Workstation CentOS虚拟机联网遇到的几个问题
- C. Karen and Game【模拟+思维】
- java数组的赋值
- Karen and Coffee codeforces 816B
- java中的sleep()和wait()的区别
- 感受
- C++中explicit关键字和implicit关键字的使用
- 上传和更新本地文件到GitHub远程仓库
- 稳定排序和不稳定排序
- java时间----java.util.Calendar
- 使用MapReduce结合HBase Filter过滤数据
- Spring aop之使用AspectJ