先把能合并的区间都合并起来。

考虑最裸的贪心策略,从左到右一段一段的取。

但是,这样会有错,错在没有考虑每段区间选取最后一个点。

因为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的更多相关文章

  1. ZOJ 3941 Kpop Music Party 贪心

    题目链接: http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=3941 题解: 先吧所给的区间合并,得到若干个独立的区间. 然后从左 ...

  2. ZOJ 3941 Kpop Music Party(省赛, 贪心)

    Kpop Music Party Time Limit: 2 Seconds      Memory Limit: 65536 KB Marjar University often hosts Kpo ...

  3. ZOJ People Counting

    第十三届浙江省大学生程序设计竞赛 I 题, 一道模拟题. ZOJ  3944http://www.icpc.moe/onlinejudge/showProblem.do?problemCode=394 ...

  4. ZOJ 3686 A Simple Tree Problem

    A Simple Tree Problem Time Limit: 3 Seconds      Memory Limit: 65536 KB Given a rooted tree, each no ...

  5. ZOJ Problem Set - 1394 Polar Explorer

    这道题目还是简单的,但是自己WA了好几次,总结下: 1.对输入的总结,加上上次ZOJ Problem Set - 1334 Basically Speaking ac代码及总结这道题目的总结 题目要求 ...

  6. ZOJ Problem Set - 1392 The Hardest Problem Ever

    放了一个长长的暑假,可能是这辈子最后一个这么长的暑假了吧,呵呵...今天来实验室了,先找了zoj上面简单的题目练练手直接贴代码了,不解释,就是一道简单的密文转换问题: #include <std ...

  7. ZOJ Problem Set - 1049 I Think I Need a Houseboat

    这道题目说白了是一道平面几何的数学问题,重在理解题目的意思: 题目说,弗雷德想买地盖房养老,但是土地每年会被密西西比河淹掉一部分,而且经调查是以半圆形的方式淹没的,每年淹没50平方英里,以初始水岸线为 ...

  8. ZOJ Problem Set - 1006 Do the Untwist

    今天在ZOJ上做了道很简单的题目是关于加密解密问题的,此题的关键点就在于求余的逆运算: 比如假设都是正整数 A=(B-C)%D 则 B - C = D*n + A 其中 A < D 移项 B = ...

  9. ZOJ Problem Set - 1001 A + B Problem

    ZOJ ACM题集,编译环境VC6.0 #include <stdio.h> int main() { int a,b; while(scanf("%d%d",& ...

随机推荐

  1. springAOP 的pointcut

    <bean id="amqFilter" class="com.xxx.hotel.base.aspectj.AmQConsumerFilter"/> ...

  2. mysql 不能插入中文

    三.#vim /etc/mysql/my.cnf .(5.5以前系统)在[client]下面加入 default-character-set=utf8 在[mysqld]下面加入default-cha ...

  3. C、C++、java的区别

    经常听到有人在抱怨这个语言哪里哪里 不好,那个语言又是如何的优秀.对于这样 的牢骚,我只是一笑而过. 就我而言,语言只是工具,没有好坏之 分.只要你采用相应的语言,完成对应的工 作,那你的目标就完成了 ...

  4. linux通用邻居基础架构

    1.为每一个协议提供一个缓存来存放L3到L2的转换结果. 2.提供在缓存中添加.删除.改变和查找一个特定映射项的函数.查找函数必须要快,因为它会影响整个系统的性能. 3.为每一个协议缓存的数据项提供一 ...

  5. HDU 5833 (2016大学生网络预选赛) Zhu and 772002(高斯消元求齐次方程的秩)

    网络预选赛的题目……比赛的时候没有做上,确实是没啥思路,只知道肯定是整数分解,然后乘起来素数的幂肯定是偶数,然后就不知道该怎么办了… 最后题目要求输出方案数,首先根据题目应该能写出如下齐次方程(从别人 ...

  6. UVALive 7291 Kinfolk(最近公共祖先)

    题目中的描述就很最近公共祖先,再说其实这个题并不难,就是麻烦点(代码其实可以化简的),我写的判定比较多. 方法:求出两者的最近公共祖先lca,在求出两者到lca的距离 分析:给出a和b,如果LCA(a ...

  7. Python基础学习2---模块

    模块 你已经学习了如何在你的程序中定义一次函数而重用代码.如果你想要在其他程序中重用很多函数,那么你该如何编写程序呢?你可能已经猜到了,答案是使用模块.模块基本上就是一个包含了所有你定义的函数和变量的 ...

  8. HDU 5723 Abandoned country

    题目说每条边权值都不一样,说明最小生成树是唯一的,不存在最小期望这一说. 然后就是先求出最小生成树,随便确定一个根节点,计算出每个点的子树有多少节点,记为c[x]. 指向x的这条边被统计的次数为c[x ...

  9. Windows API 之 ReadProcessMemory

    ReadProcessMemory: BOOL WINAPI ReadProcessMemory( _In_ HANDLE hProcess, _In_ LPCVOID lpBaseAddress, ...

  10. JSP内置对象---总结

     request: javax.servlet.http.HttpServletRequest的接口实例 1. setCharacterEncoding("GBK"):防乱码2. ...