Description

凯萨拥有一支由n个人组成的雇佣军,他们靠在威尼斯商行接任务过活。这支军队的成份比较复杂,不同的人往往具有不同的技能,有的人还拥有多项技能。威尼斯商行的任务也参差不齐,有的需要几个人合作完成,有的只需要一个人独立完成:有的很简单,不需要耗多少时间,因此报酬也较低,有的很有难度,需要多个人长期合作完成,因此报酬就高。完成这些任务的时间不会超过一个月。并且,一个人不能同时执行两项任务,也不能中途加入或者退出任务。但可以不执行任何任务。一项只需要n个人来完成的任务,如果执行该任务的人数p大于n,那么反而会得到更少的报酬,即原报酬的1/(p-n+1)。
  凯萨是一位英明的领袖,他往往在每个月的月底召开军事会议,总结上个月的成果,发给大家报酬,并指派下个月的任务。
  请问,凯萨应该怎样指派任务,才能使总报酬最高?总报酬为多少?

Input

一行包含两个正整数n,m。彼此用空格隔开,其中n〈10表示雇佣军的人数,m〈15表示下个月可选的任务数。接下来的n行中,第i行(对应整个文件的第i+1行)的第一个整数小于等于表示编号为i的雇佣军可以执行的任务数,后面的整数是编号为i的雇佣军可以执行的所有任务的编号,这些整数之间用空格隔开。最后的m行中,每行有四个整数b、e、p和r,彼此之间用空格隔开,其中第j行(对应整个文件的第n+j+1行)是编号为j的任务的描述:0 〈 b 〈 32表示该任务的开始日(这一天会被计入任务所需的时间中),0 < e〈32表示该任务的结束日(这一天也会被计入任务所需的时间中),p 〈 10表示该任务所需人数,0 〈 r 〈 100000表示该任务的报酬。

Output

第一行只有一个整数t,表示最多可获得的总报酬,

Sample Input

3 5

2 1 4

2 2 4

3 3 4 5

2 20 1 100

1 18 1 200

3 28 1 800

21 30 3 1500

19 21 1 400

Sample Output

1800

竟然是真的,爆搜就可以AC了

不敢想象,为什么要这么出水题,我还以为有什么算法在里面呢

 var
n,m,ans:longint;
flag:array[..,..]of boolean;
time:array[..]of longint;
s,t,p,v:array[..]of longint;
a:array[..,..]of longint; procedure swap(x,y:longint);
var
i,ti:longint;
ss:boolean;
begin
for i:= to n do
begin
ss:=flag[i,x];
flag[i,x]:=flag[i,y];
flag[i,y]:=ss;
end;
ti:=s[x];s[x]:=s[y];s[y]:=ti;
ti:=t[x];t[x]:=t[y];t[y]:=ti;
ti:=p[x];p[x]:=p[y];p[y]:=ti;
ti:=v[x];v[x]:=v[y];v[y]:=ti;
end; procedure init;
var
i,j,k,x:longint;
begin
read(n,m);
for i:= to n do
begin
read(k);
for j:= to k do
begin
read(x);
flag[i,x]:=true;
end;
end;
for i:= to m do
read(s[i],t[i],p[i],v[i]);
for i:= to <<n- do
begin
k:=;
for j:= to n do
if i and (<<(j-))> then inc(k);
inc(a[k,]);
a[k,a[k,]]:=i;
end;
for i:=m- downto do
for j:= to i do
if s[j]>s[j+] then swap(j,j+);
end; procedure dfs(x,y:longint);
var
i,j:longint;
save:array[..]of longint;
can:boolean;
begin
if x>m then
begin
if y>ans then ans:=y;
exit;
end;
dfs(x+,y);
save:=time;
for i:= to a[p[x],] do
begin
can:=true;
for j:= to n do
if a[p[x],i] and (<<(j-))> then
begin
if (flag[j,x])and(time[j]<s[x]) then time[j]:=t[x]
else
begin
can:=false;
break;
end;
end;
if can then dfs(x+,y+v[x]);
time:=save;
end;
end; begin
init;
dfs(,);
write(ans);
end.

1198: [HNOI2006]军机调度 - BZOJ的更多相关文章

  1. BZOJ 1198 [HNOI2006]军机调度:dfs

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1198 题意: 有n个雇佣军,m个任务. 第i个雇佣军能够参加cnt个任务,分别为temp[ ...

  2. BZOJ 1198: [HNOI2006]军机调度(搜索)

    直接暴搜就行了= = CODE: #include<cstdio> #include<iostream> #include<cstring> #include< ...

  3. 1191: [HNOI2006]超级英雄Hero - BZOJ

    Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金.主持人问题准备了若干道题目,只有当选手正确回 ...

  4. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  5. bzoj 1191: [HNOI2006]超级英雄Hero

    1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec  Memory Limit: 162 MB 二分图匹配... Description 现在电视台有一种节目叫做超 ...

  6. BZOJ 1192: [HNOI2006]鬼谷子的钱袋 数学结论

    1192: [HNOI2006]鬼谷子的钱袋 Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的 ...

  7. BZOJ 1191: [HNOI2006]超级英雄Hero 二分匹配

    1191: [HNOI2006]超级英雄Hero Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或 ...

  8. 【最小生成树】BZOJ 1196: [HNOI2006]公路修建问题

    1196: [HNOI2006]公路修建问题 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1435  Solved: 810[Submit][Sta ...

  9. bzoj 1195: [HNOI2006]最短母串 爆搜

    1195: [HNOI2006]最短母串 Time Limit: 10 Sec  Memory Limit: 32 MBSubmit: 894  Solved: 288[Submit][Status] ...

随机推荐

  1. Nginx - HTTP Configuration, Module Variables

    The HTTP Core module introduces a large set of variables that you can use within the value of direct ...

  2. 关于Tesseract3.01的使用方法

    Tesseract就不多介绍勒,能找到的人都知道是干嘛的 下面记录一下C# vs2010下的使用方法(借鉴http://blog.csdn.net/bobo1013767522/article/det ...

  3. DOS批处理命令-goto命令

    goto是一个流程控制语句 rem goto语句是一个大家都不怎么喜欢的语句,因为他的随意性太强,导致可维护性大大的降低. 语法: goto [lable]   [lable]是bat程序中任意定义的 ...

  4. knowlege experience

    The konwledge is you need learning some basic knowledge. The experience is you can use konwledge  ma ...

  5. 在SQL 2012中使用和Oracle 一样的序列

    使用过Oracle的都知道,Oracle中的自增是靠序列来完成的,在一定程度上蛮方便的.现在SQL 2012中也有序列了.来看看怎么做的吧! SQL Server 现在将序列当成一个对象来实现,创建一 ...

  6. bzoj3389:[Usaco2004 Dec]Cleaning Shifts安排值班

    思路:可以贪心,也可以最短路. 贪心写法:因为在保证合法的前提下,我们选择的区间一定要右端点尽量靠后才行,于是我们每次就选择一个合法的并且右端点最靠后的区间就好了(如果没有合法的输出-1即可).时间复 ...

  7. HTML5之 Microdata微数据

    - 为何需要微数据 长篇加累版牍,不好理解 微标记来标注其中内容,让其容易识辨 - RDFa Resource Description Framework http://www.w3.org/TR/m ...

  8. L007-oldboy-mysql-dba-lesson07

    L007-oldboy-mysql-dba-lesson07 [root@web01 ~]# mysqldump -uroot -ptestpassword -A >/root/mysql_ba ...

  9. jquery获取iframe中的dom对象

    父窗口中操作iframe:$(window.frames["iframeChild"].document)    //假如iframe的id为iframeChild 在子窗口中操作 ...

  10. wap手机端解决返回上一页,js

    <input id="hd_referrer" type="hidden" />                <a href="j ...