/*
题意:
两方对阵,互发导弹。防护罩可以让导弹原速反向。
每一枚导弹有发射时间航行时间伤害值。
防护罩也有开启时间和防御时间。
其中一方防护罩开启时间已知,求另一方防护罩合理安排开启时间使得己方受到的伤害最小。
思路:
假设己方的防护罩一只有效,那么我们可以根据对方防护罩的时间算出任何一枚导弹第一次落入己方和最后一次落入己方的时间。
然后类似扫描线的思维处理。
时间的计算可以直接来公式处理,也可以二分下...
比赛最后没出这题,细节问题没处理好,我的锅。 */ #include<bits/stdc++.h>
using namespace std;
long long ta,tb,x;
struct st{
void read(){
scanf("%lld%lld%lld",&ta,&tac,&da);
}
long long st,ed,ta,tac,da,id;
};
st ziji[],diren[],rel[],bbb[];
bool cmp(st a,st b){
return a.st<b.st;
}
bool cmp2(st a,st b){
return a.ed<b.ed;
}
bool ms[];
int main(){
while(scanf("%lld%lld",&ta,&tb)!=EOF){
memset(ms,,sizeof(ms));
scanf("%lld",&x);
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<n;i++)ziji[i].read();
for(int i=;i<m;i++)diren[i].read();
int num=;
long long ans=;
for(int i=;i<n;i++){
if(ziji[i].ta+ziji[i].tac>x+tb||ziji[i].ta+ziji[i].tac<x)continue;
ziji[i].st=ziji[i].ta+ziji[i].tac*;
if(ziji[i].st+ziji[i].tac>x+tb)ziji[i].ed=ziji[i].st;
else{
ziji[i].ed=((x+tb-ziji[i].ta-ziji[i].tac)/(*ziji[i].tac)+)**ziji[i].tac+ziji[i].ta;
}
rel[num++]=ziji[i];
rel[num-].id=num-;
ans+=ziji[i].da;
}
for(int i=;i<m;i++){
diren[i].st=diren[i].ta+diren[i].tac;
if(diren[i].st+diren[i].tac>x+tb||diren[i].st+diren[i].tac<x)diren[i].ed=diren[i].st;
else{
diren[i].ed=((x+tb-diren[i].st-diren[i].tac)/(*diren[i].tac)+)**diren[i].tac+diren[i].st;
}
rel[num++]=diren[i];
rel[num-].id=num-;
ans+=diren[i].da;
}
for(int i=;i<num;i++)bbb[i]=rel[i];
sort(rel,rel+num,cmp);
sort(bbb,bbb+num,cmp2);
long long gg=ans,sst=rel[].st,bf=,xx=;
for(int i=;i<num;){
gg+=bf;
bf=;
sst=rel[i].st;
while(i<num&&rel[i].st==sst){
if(rel[i].ed<=sst+ta){
bf+=rel[i].da;
if(ms[rel[i].id]==){
ms[rel[i].id]=;
gg-=rel[i].da;
}
}
i++;
}
while(xx<num&&bbb[xx].ed<=sst+ta){
if(ms[bbb[xx].id]==&&bbb[xx].st>=sst){
ms[bbb[xx].id]=;
gg-=bbb[xx].da;
}
xx++;
}
ans=min(gg,ans);
}
printf("%lld\n",ans);
}
}

hihocoder 1391 [扫描线]的更多相关文章

  1. 离线树状数组 hihocoder 1391 Countries

    官方题解: // 离线树状数组 hihocoder 1391 Countries #include <iostream> #include <cstdio> #include ...

  2. hihocoder 1391 树状数组

    #1391 : Countries 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 There are two antagonistic countries, countr ...

  3. hihoCoder 1391 Countries【预处理+排序+优先队列】2016北京网络赛

    题目:http://hihocoder.com/problemset/problem/1391 题目大意: A和B两个国家互射导弹,每个国家都有一个防御系统,在防御系统开启的时间内可以将到达本国的导弹 ...

  4. hihoCoder 1391 Countries 【预处理+排序+堆】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛)

    #1391 : Countries 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 There are two antagonistic countries, countr ...

  5. 2016北京网络赛 hihocoder 1391 Countries 树状数组

    Countries   描述 There are two antagonistic countries, country A and country B. They are in a war, and ...

  6. HihoCoder - 1652:三角形面积和2(扫描线)

    题意:给定X轴上的一些三角形,求面积并. 每个三角形的给出形式是Li,Ri,Xi,Yi,表示三个顶点分别是(Li,0):(Ri,0):(Xi,Yi),且满足Li<=Xi<=Ri: 思路:我 ...

  7. BZOJ 1391: [Ceoi2008]order [最小割]

    1391: [Ceoi2008]order Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1509  Solved: 460[Submit][Statu ...

  8. hihocoder -1121-二分图的判定

    hihocoder -1121-二分图的判定 1121 : 二分图一•二分图判定 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 大家好,我是小Hi和小Ho的小伙伴Net ...

  9. Hihocoder 太阁最新面经算法竞赛18

    Hihocoder 太阁最新面经算法竞赛18 source: https://hihocoder.com/contest/hihointerview27/problems 题目1 : Big Plus ...

随机推荐

  1. iOS开发拓展篇—音频处理(音乐播放器4)

    iOS开发拓展篇—音频处理(音乐播放器4) 说明:该文主要介绍音乐播放器实现过程中的一些细节控制. 实现的效果: 一.完整的代码 YYPlayingViewController.m文件 // // Y ...

  2. CentOS Mysql 5.1.73 主从配置

    ---------------------------------------------- 1 修改my.cnf ------------------------------------------ ...

  3. Oracle数据库中scott用户不存在的解决方法

    SCOTT用户是我们学习Oracle过程中一个非常重要的实验对象,在我们建立数据库的时候,如果是选择定制模式的话,SCOTT用户是不会默认出现的,不过我们可以通过使用几个简单命令来使这个用户出现.以下 ...

  4. 读取配置文件 PropertyPlaceholderConfigurer 的配置与使用

    public class SpringPropertyConfigurer extends PropertyPlaceholderConfigurer { private static Map< ...

  5. HTML5新增Canvas标签及对应属性、API详解(基础一)

    知识说明: HTML5新增的canvas标签,通过创建画布,在画布上创建任何想要的形状,下面将canvas的API以及属性做一个整理,并且附上时钟的示例,便于后期复习学习!Fighting! 一.标签 ...

  6. Sharepoint的javascript客户端对象模型获取其他站点的list

    获取当前站点(子站点而不是站点集)下的list var clientContext = new SP.ClientContext.get_current(); var list=clientConte ...

  7. PostgreSQL的9.4已经发布(译)

    http://www.postgresql.org/about/news/1557/ 2014年12月18日,PostgreSQL全球开发小组发布PostgreSQL9.4,PostgresQL是世界 ...

  8. 【转】Flexbox——快速布局神器

    原文转自:http://www.w3cplus.com/css3/flexbox-basics.html 简介 在很多方面HTML和CSS是一个强大的内容发布机制——易学.灵活和强大.但复杂的布局是他 ...

  9. net_device 结构体分析

    /* * The DEVICE structure. * Actually, this whole structure is a big mistake. It mixes I/O * data wi ...

  10. PAT (Advanced Level) Practise:1008. Elevator

    [题目链接] The highest building in our city has only one elevator. A request list is made up with N posi ...