1198: [HNOI2006]军机调度 - BZOJ
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的更多相关文章
- BZOJ 1198 [HNOI2006]军机调度:dfs
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1198 题意: 有n个雇佣军,m个任务. 第i个雇佣军能够参加cnt个任务,分别为temp[ ...
- BZOJ 1198: [HNOI2006]军机调度(搜索)
直接暴搜就行了= = CODE: #include<cstdio> #include<iostream> #include<cstring> #include< ...
- 1191: [HNOI2006]超级英雄Hero - BZOJ
Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金.主持人问题准备了若干道题目,只有当选手正确回 ...
- bzoj AC倒序
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...
- bzoj 1191: [HNOI2006]超级英雄Hero
1191: [HNOI2006]超级英雄Hero Time Limit: 10 Sec Memory Limit: 162 MB 二分图匹配... Description 现在电视台有一种节目叫做超 ...
- BZOJ 1192: [HNOI2006]鬼谷子的钱袋 数学结论
1192: [HNOI2006]鬼谷子的钱袋 Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的 ...
- BZOJ 1191: [HNOI2006]超级英雄Hero 二分匹配
1191: [HNOI2006]超级英雄Hero Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或 ...
- 【最小生成树】BZOJ 1196: [HNOI2006]公路修建问题
1196: [HNOI2006]公路修建问题 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1435 Solved: 810[Submit][Sta ...
- bzoj 1195: [HNOI2006]最短母串 爆搜
1195: [HNOI2006]最短母串 Time Limit: 10 Sec Memory Limit: 32 MBSubmit: 894 Solved: 288[Submit][Status] ...
随机推荐
- 简单遗传算法求解n皇后问题
版权声明:本文为博主原创文章,转载请注明出处. 先解释下什么是8皇后问题:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行.同一列或同一斜线上,问有多少种摆法.在不 ...
- 随机生成MyEclipse注册码
package com.registercode; import java.io.BufferedReader;import java.io.IOException;import java.io.In ...
- Servlet & JSP - Filter
过滤器可以对用户的请求拦截,进行预处理操作,接着将请求交给 Servlet 处理并生成响应,最后再对响应拦截,进行后处理操作.过滤器应用的场景有:用户登录.加密解密.会话校验等. Filter API ...
- 找出文件正在被哪个windows进程使用的方法
Ever try to delete, move, or rename a file only to get a Windows system warning with something like ...
- namenode无法启动(namenode格式化失败)
格式化namenode root@node04 bin]# sudo -u hdfs hdfs namenode –format 16/11/14 10:56:51 INFO namenode.Nam ...
- CSS之导航菜单
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- mysql 打包表在phpmyadmin提示正在使用中..
一,利用phpmyadmin修改表功能,REPAIR TABLE `你的表名` 或直接在数据库管理界面,选中表如下图 二,如果利用修改功能失败了我们还可以尝试在替换本地mysql数据库时,我们先停止m ...
- IOS UI 笔记整理回顾
注意手势会冒泡上抛,一个view没有实现的手势,如果父类view有实现,父视图就处理,如果不想让父视图处理,就把本视图添加到底层window上 setMasksToBounds:YES imageVi ...
- 引用类型之Array类型
Array类型 ECMAScript数组与其它语言数组一样,都是数据的有序列表.但是ECMAScript数组的每一项可以保存任何类型的数据.而且,ECMAScript数组是可以动态调整的. 1.创建和 ...
- XPath 初步讲解
2016-05-05 XPath是JavaScript 中节点查找手段,ie9以后的版本才支持w3c标准,其他浏览器基本支持.在e8之前的浏览器,通过基于 activeX的xml dom对象实现. 为 ...