ZOJ 3941 Kpop Music Party
先把能合并的区间都合并起来。
考虑最裸的贪心策略,从左到右一段一段的取。
但是,这样会有错,错在没有考虑每段区间选取最后一个点。
因为N只有10,所以枚举一下哪些区间最后一个点会被选择,然后按照最裸的的贪心策略从左到右选择即可,每次更新最大值。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
#include<algorithm>
using namespace std; const int maxn=;
struct X
{
long long L,R;
} s[maxn],tmp[maxn];
int n;
long long k,m,ans;
int g[maxn]; bool cmp(const X&a,const X&b)
{
if(a.L==b.L) return a.R<b.R;
return a.L<b.L;
} void f()
{
sort(tmp+,tmp++n,cmp);
int cnt=;
s[].L=tmp[].L,s[].R=tmp[].R;
for(int i=; i<=n; i++)
{
if(tmp[i].L<=s[cnt].R+)
s[cnt].R=max(s[cnt].R,tmp[i].R);
else
{
cnt++;
s[cnt].L=tmp[i].L,s[cnt].R=tmp[i].R;
}
}
n=cnt;
} long long check()
{
long long sum=,pos=; long long sy=m; for(int i=;i<=n;i++)
{
if(pos<s[i].L)
{
long long u=min(sy,(s[i].R-s[i].L+)/k);
sum=sum+u*k,pos=s[i].L-+u*k;
sy=sy-u; if(sy==) return sum; if(pos<s[i].R)
{
sum=sum+k,pos=pos+k;
sy=sy-; if(sy==) return sum;
} if(g[i]==)
{
sum=sum+s[i].R+k--pos;
pos=s[i].R+k-;
sy=sy-; if(sy==) return sum;
}
}
else if(pos>=s[i].R)
{
if(g[i]==)
{
sum=sum+s[i].R+k--pos;
pos=s[i].R+k-;
sy=sy-; if(sy==) return sum;
}
}
else
{
long long u=min(sy,(s[i].R-pos)/k);
sum=sum+u*k,pos=pos+u*k;
sy=sy-u; if(sy==) return sum; if(pos<s[i].R)
{
sum=sum+k,pos=pos+k;
sy=sy-; if(sy==) return sum;
} if(g[i]==)
{
sum=sum+s[i].R+k--pos;
pos=s[i].R+k-;
sy=sy-; if(sy==) return sum;
}
}
}
return sum;
} void dfs(int tot)
{
if(tot==n+)
{
ans=max(ans,check());
return;
}
g[tot]=; dfs(tot+);
g[tot]=; dfs(tot+);
} int main()
{
int T;
scanf("%d",&T);
while(T--)
{
ans=;
scanf("%d%lld%lld",&n,&k,&m);
for(int i=; i<=n; i++)
scanf("%lld%lld",&tmp[i].L,&tmp[i].R);
f();
dfs();
printf("%lld\n",ans);
}
return ;
}
ZOJ 3941 Kpop Music Party的更多相关文章
- ZOJ 3941 Kpop Music Party 贪心
题目链接: http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3941 题解: 先吧所给的区间合并,得到若干个独立的区间. 然后从左 ...
- ZOJ 3941 Kpop Music Party(省赛, 贪心)
Kpop Music Party Time Limit: 2 Seconds Memory Limit: 65536 KB Marjar University often hosts Kpo ...
- ZOJ People Counting
第十三届浙江省大学生程序设计竞赛 I 题, 一道模拟题. ZOJ 3944http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=394 ...
- ZOJ 3686 A Simple Tree Problem
A Simple Tree Problem Time Limit: 3 Seconds Memory Limit: 65536 KB Given a rooted tree, each no ...
- ZOJ Problem Set - 1394 Polar Explorer
这道题目还是简单的,但是自己WA了好几次,总结下: 1.对输入的总结,加上上次ZOJ Problem Set - 1334 Basically Speaking ac代码及总结这道题目的总结 题目要求 ...
- ZOJ Problem Set - 1392 The Hardest Problem Ever
放了一个长长的暑假,可能是这辈子最后一个这么长的暑假了吧,呵呵...今天来实验室了,先找了zoj上面简单的题目练练手直接贴代码了,不解释,就是一道简单的密文转换问题: #include <std ...
- ZOJ Problem Set - 1049 I Think I Need a Houseboat
这道题目说白了是一道平面几何的数学问题,重在理解题目的意思: 题目说,弗雷德想买地盖房养老,但是土地每年会被密西西比河淹掉一部分,而且经调查是以半圆形的方式淹没的,每年淹没50平方英里,以初始水岸线为 ...
- ZOJ Problem Set - 1006 Do the Untwist
今天在ZOJ上做了道很简单的题目是关于加密解密问题的,此题的关键点就在于求余的逆运算: 比如假设都是正整数 A=(B-C)%D 则 B - C = D*n + A 其中 A < D 移项 B = ...
- ZOJ Problem Set - 1001 A + B Problem
ZOJ ACM题集,编译环境VC6.0 #include <stdio.h> int main() { int a,b; while(scanf("%d%d",& ...
随机推荐
- mongodb分片
在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的.而mongodb主打的就是海量数据架构,他不能解决海量数据怎么行!不行!“分片”就用这个来 ...
- Java学习笔记之Scanner报错java.util.NoSuchElementException
转载自:IT学习者-螃蟹 一个方法A使用了Scanner,在里面把它关闭了.然后又在方法B里调用方法A之后就不能再用Scanner了Scanner in = new Scanner(System.in ...
- Simple But Useful Samples About 'grep' Command(简单实用的grep 命令)
Do the following: grep -rnw '/path/to/somewhere/' -e "pattern" -r or -R is recursive, -n i ...
- div+css网页本地上和上传到服务器后在IE11上看到的效果不一样?
div+css网页本地上和上传到服务器后在IE11上看到的效果不一样? 解决办法在html的head里加上一段:<meta http-equiv="X-UA-Compatible&qu ...
- //获取url中"?"符后的字串
//获取url中"?"符后的字串 function getParamByUrl(url) { var theRequest = new Object(); var in ...
- ALAssetsLibrary 照片相关 浅析
ALAssetsLibrary 提供了访问iOS设备下”照片”应用下所有照片和视频的接口: 从 ALAssetsLibrary 中可读取所有的相册数据,即 ALAssetsGroup 对象列表: 从每 ...
- shell 分词
######################################################################### # File Name: hello.sh # Au ...
- unity中的update、Lateupdate和FixedUpdate。
MonoBehaviour.Update 更新 当MonoBehaviour启用时,其Update在每一帧被调用. MonoBehaviour.FixedUpdate 固定更新 当MonoBehavi ...
- Linux + Apache + PHP 环境搭建
搭建环境: Ubuntu 15.04 Apache 2.4.16 PHP 5.6.15 1 安装Apache 先安装依赖程序(都安装在 /usr/local/ 目录下) apr-1.5.2.tar.g ...
- 使用PHP Socket 编程模拟Http post和get请求
这里给大家分享一段使用PHP Socket 编程模拟Http post和get请求的代码,非常的实用,结尾部分我们再讨论下php模拟http请求的几种方法. <?php /** * 使用PHP ...