hud 4970 Killing Monsters 模拟
来源:互联网 发布:linux程序开机启动 编辑:程序博客网 时间:2024/06/07 01:03
题意:N个格子排成一条线,有M个炮塔,每个炮塔的覆盖范围为(L,R),伤害值为D,有Q个怪,每个怪都有一个HP和出现的位置S,怪从左往右走,问最后有几个怪能活下来.
思路:万恶的先入为主思想,一开始我就自以为很聪明地想用线段树,结果就T,常数太大.后来发现想复杂了,因为全市区间,所以只需要记录前一个格子的伤害值于后一个伤害值的关系,记录完之后从后往前推出每个格子的伤害就好,O(N)的复杂度就能模拟出来.
#include <cstdio>#include <cstring>#include <iostream>#include <queue>using namespace std;#define maxn 100010long long sum[maxn],h;int main(){ int cnt,l,r,d,s,n,m,q; // freopen("data.in","r",stdin); while(1){ scanf("%d",&n); if(n==0) break; memset(sum,0,sizeof(sum)); scanf("%d",&m); for(int i=0;i<m;i++){ scanf("%d%d%d",&l,&r,&d); sum[l-1]-=d; sum[r]+=d; } for(int i=n-1;i>0;i--){ sum[i]+=sum[i+1]; } for(int i=n-1;i>0;i--){ sum[i]+=sum[i+1]; } cnt=0; scanf("%d",&q); for(int i=0;i<q;i++){ scanf("%I64d%d",&h,&s); if(sum[s]<h) cnt++; } printf("%d\n",cnt); }}
0 0
- hud 4970 Killing Monsters 模拟
- hdu 4970 Killing Monsters
- HDOJ 4970 Killing Monsters
- HDU - 4970 Killing Monsters
- hdu 4970 Killing Monsters
- HDU 4970 Killing Monsters
- hdu 4970 Killing Monsters
- 【HDOJ 4970】 Killing Monsters
- HDU 4970-Killing Monsters
- HDU 4970 Killing Monsters 【搜索】
- HDU 4970 Killing Monsters(签到)
- hdu 4970 Killing Monsters(高效)
- [周赛] HDU - 4970 Killing Monsters
- hdu 4970 Killing Monsters 多校九 求和
- hdu 4970 Killing Monsters(数学题)
- HDU 4970 Killing Monsters(扫描线)
- HDU 4970 Killing Monsters 离线 差分
- HDOJ 4970 Killing Monsters(线段树)
- 变量命名规范
- Git on Android source
- DoDataExchange函数解释
- 天下第一会到的人
- Spring整合Hibernate映射关系注解版 -- 实例
- hud 4970 Killing Monsters 模拟
- awk 多行合并【next 使用介绍】(常见应用4)
- EAS 屏蔽排序事件
- Java设计模式-设计模式的六种原则
- 地图投影种类----中英文对照
- SVM 相关公式推导解释
- 启动级别:init 0,1,2,3,4,5,6
- 要求写一个程序,返回最少的操作数,使得源串进行这些操作后等于目标串。源串和目标串长度都小于2000。
- python文件自动关闭闭包