BZOJ 1198: [HNOI2006]军机调度(搜索)
直接暴搜就行了= =
CODE:
#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
int count(int x) {
int ans=0;
while (x) {
ans+=x&1;
x>>=1;
}
return ans;
}
#define maxn 35
int b[maxn],e[maxn],r[maxn],ans,n,m,p[maxn],s[maxn];
bool a[maxn][maxn],is[maxn][maxn];
int dfs(int x,int sum) {
if (sum>ans) ans=sum;
if (x==m+1) return 0;
dfs(x+1,sum);
int tot=0,s[maxn];
for (int i=1;i<=n;i++)
if (a[i][x]) {
bool flag=1;
for (int j=b[x];j<=e[x];j++)
if (is[i][j]) {flag=0;break;}
if (flag) s[++tot]=i;
}
if (tot<p[x]) return 0;
for (int i=1;i<(1<<tot);i++) {
if (count(i)!=p[x]) continue;
for (int j=1;j<=tot;j++) {
if ((1<<(j-1))&i){
int y=s[j];
for (int k=b[x];k<=e[x];k++) is[y][k]=1;
}
}
dfs(x+1,sum+r[x]);
for (int j=1;j<=tot;j++) {
if ((1<<(j-1))&i){
int y=s[j];
for (int k=b[x];k<=e[x];k++) {is[y][k]=0;}
}
}
}
return 0;
}
int main(){
scanf("%d%d",&n,&m);
for (int i=1;i<=n;i++) {
int x;
scanf("%d",&x);
for (int j=1;j<=x;j++) {
int y;
scanf("%d",&y);
a[i][y]=1;
}
}
for (int i=1;i<=m;i++) {
scanf("%d%d%d%d",b+i,e+i,p+i,r+i);
}
dfs(1,0);
printf("%d",ans);
return 0;
}
BZOJ 1198: [HNOI2006]军机调度(搜索)的更多相关文章
- BZOJ 1198 [HNOI2006]军机调度:dfs
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1198 题意: 有n个雇佣军,m个任务. 第i个雇佣军能够参加cnt个任务,分别为temp[ ...
- 1198: [HNOI2006]军机调度 - BZOJ
Description 凯萨拥有一支由n个人组成的雇佣军,他们靠在威尼斯商行接任务过活.这支军队的成份比较复杂,不同的人往往具有不同的技能,有的人还拥有多项技能.威尼斯商行的任务也参差不齐,有的需要几 ...
- BZOJ 1195: [HNOI2006]最短母串 AC自动机+状压+搜索
思路比较直接. 由于 $n$ 很小,直接定义 $f[i][j]$ 表示当前在自动机中的节点 $i,$ 被覆盖串的集合为 $j$ 的方案数. #include <bits/stdc++.h> ...
- 洛谷3067 BZOJ 2679题解(折半搜索)
传送门 BZOJ传送门(权限题) 看到n小于20,就可以想到搜索 所有的数要么在集合a中,要么在集合b中,要么都不在 可是3^n复杂度会炸,我们考虑优化 可以利用折半搜索,将前面一半的所有可能情况与后 ...
- 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] ...
随机推荐
- 微信小程序之----弹框组件modal
modal modal类似于javascript中的confirm弹框,默认情况下是一个带有确认取消的弹框,不过点击取消后弹框不会自动隐藏,需要通过触发事件调用函数来控制hidden属性. 官方文档 ...
- Maven的安装环境配置
一.Maven的安装 二.Maven的配置 Settings.xml可以用来定义本地仓库.远程仓库.联网代理 Settings.xml文件可以存在两个地方: 1.多用户情况 conf目录下 2.单用户 ...
- Java序列化与反序列化,文件操作
参考两篇博客: http://blog.csdn.net/moreevan/article/details/6697777 http://blog.csdn.net/moreevan/article/ ...
- bzoj1449————2016——3——14
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1449 题目简述: Description Input Output 一个整数表示联盟里所有球 ...
- C#、C++用GDAL读shp文件(转载)
C#.C++用GDAL读shp文件 C#用GDAL读shp文件 (2012-08-14 17:09:45) 标签: 杂谈 分类: c#方面的总结 1.目前使用开发环境为VS2008+GDAL1.81 ...
- 330. Patching Array
Given a sorted positive integer array nums and an integer n, add/patch elements to the array such th ...
- 九 Android基本知识介绍
1.Package Package,中文翻译过来是包的意思.安卓系统的程序是以apk作为扩展名的,.apk就是android package的简写,package也就是这个app的唯一标识,其实这里的 ...
- 避免Node.js中回调地狱
为了解决这个阻塞问题,JavaScript严重依赖于回调,这是在长时间运行的进程(IO,定时器等)完成后运行的函数,因此允许代码执行经过长时间运行的任务. downloadFile('example. ...
- sitemap.xml 的 几个东西
https://github.com/PureKrome/SimpleSitemap/wiki/Sitemap-Index-example 简单类实现 支持sitemapindex 有说明向导 ht ...
- spring mvc 参数传递的三种方式
springmvc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...