CF1185F Two Pizzas 状压
你发现 pizza 种类数不会很多,状压一下就可以了
code:
#include <bits/stdc++.h>
#define M 11
#define N 100005
#define LL long long
using namespace std;
int n,m,cnt;
int v[1<<M],tmp[M],id[1<<M],a1[1<<M],a2[1<<M];
LL val[1<<M];
LL mer[1<<M];
int tot[1<<M];
struct node
{
LL x;
int id;
node(LL x=0,int id=0):x(x),id(id){}
};
vector<node>gg[1<<M];
bool cmp(node a,node b)
{
return a.x<b.x;
}
int main()
{
int i,j;
scanf("%d%d",&n,&m);
for(i=0;i<=10;++i) tmp[i]=1<<i;
for(i=1;i<=n;++i)
{
int t,x,re=0;
scanf("%d",&t);
for(j=1;j<=t;++j) scanf("%d",&x),re|=tmp[x];
++v[re];
}
for(i=1;i<=m;++i)
{
LL x;
scanf("%lld",&x);
int t,o,re=0;
scanf("%d",&t);
for(j=1;j<=t;++j) scanf("%d",&o),re|=tmp[o];
if(!val[re]||val[re]>x) val[re]=x, id[re]=i;
gg[re].push_back(node(x,i));
}
for(i=1;i<tmp[10];++i) sort(gg[i].begin(),gg[i].end(),cmp);
for(i=1;i<tmp[10];++i)
{
if(!val[i]) continue;
if(gg[i].size()>=2)
{
if(!mer[i]||mer[i]>gg[i][0].x+gg[i][1].x)
mer[i]=gg[i][0].x+gg[i][1].x,a1[i]=gg[i][0].id, a2[i]=gg[i][1].id;
}
for(j=i+1;j<=tmp[10];++j)
{
if(!val[j]) continue;
if(!mer[i|j]||(mer[i|j]>val[i]+val[j]))
{
mer[i|j]=val[i]+val[j];
a1[i|j]=id[i];
a2[i|j]=id[j];
}
}
}
int mx=0;
for(i=1;i<=tmp[10];++i)
{
if(!mer[i]) continue;
tot[i]=0; // 枚举结合完的
for(j=1;j<=tmp[10];++j) { if((i&j)==j) tot[i]+=v[j]; }
if(!mx||(tot[i]>tot[mx])||(tot[i]==tot[mx]&&mer[i]<mer[mx])) mx=i;
}
// printf("%lld %d\n",mer[mx],tot[mx]);
printf("%d %d\n",a1[mx],a2[mx]);
return 0;
}
CF1185F Two Pizzas 状压的更多相关文章
- CF1185F Two Pizzas
CF1185F Two Pizzas 洛谷评测传送门 题目描述 A company of nn friends wants to order exactly two pizzas. It is kno ...
- TZOJ 2289 Help Bob(状压DP)
描述 Bob loves Pizza but is always out of money. One day he reads in the newspapers that his favorite ...
- NOJ 1116 哈罗哈的大披萨 【淡蓝】 [状压dp+各种优化]
我只能说,珍爱生命,远离卡常数的题...感谢陈老师和蔡神,没有他们,,,我调一个星期都弄不出来,,,, 哈罗哈的大披萨 [淡蓝] 时间限制(普通/Java) : 1000 MS/ 3000 MS ...
- POJ3311 Hie with the Pie 【状压dp/TSP问题】
题目链接:http://poj.org/problem?id=3311 Hie with the Pie Time Limit: 2000MS Memory Limit: 65536K Total ...
- <状压DP>solution-POJ3311_Hie with the Pie
Hie with the Pie Description The Pizazz Pizzeria prides itself in delivering pizzas to its customers ...
- BZOJ 1087: [SCOI2005]互不侵犯King [状压DP]
1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3336 Solved: 1936[Submit][ ...
- 【BZOJ-4197】寿司晚宴 状压DP
4197: [Noi2015]寿司晚宴 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 694 Solved: 440[Submit][Status] ...
- nefu1109 游戏争霸赛(状压dp)
题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1109 //我们校赛的一个题,状压dp,还在的人用1表示,被淘汰 ...
- poj3311 TSP经典状压dp(Traveling Saleman Problem)
题目链接:http://poj.org/problem?id=3311 题意:一个人到一些地方送披萨,要求找到一条路径能够遍历每一个城市后返回出发点,并且路径距离最短.最后输出最短距离即可.注意:每一 ...
随机推荐
- 高仿linux下的ls -l命令——C语言实现
主要用到的函数可以参考头文件,仅仅支持ls -l这功能,扩展就交给大家了0.0 相关测试图片: 话不多说,直接上码 #include <stdio.h> #include < ...
- 使用VS Code快速编写HTML
VS Code 有自动补全HTML代码方法体的功能 1.打开VS Code并新建文件,点击底部右侧语言模式选项,默认为纯文本(plaintext),将其改为HTML. 2.在空文件第一行输入”!“,光 ...
- 2. 执行Spark SQL查询
2.1 命令行查询流程 打开Spark shell 例子:查询大于21岁的用户 创建如下JSON文件,注意JSON的格式: {"name":"Michael"} ...
- vue --- axios拦截器+form格式请求体
在vue2.x中使用CLI生成的模板有很大改变,需要自己手动在main.ts同级目录下新建interceptors.ts interceptors.ts import axios from 'axio ...
- C# vb .net实现发光效果
在.net中,如何简单快捷地实现Photoshop滤镜组中的发光效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一步 ...
- 14.1 Scroll说明和注意事项
使用scroll滚动搜索: 比如全文搜索10万条数据,不能一次全搜出来返回,太耗时了.通常是一批一批的获取结果,滚动搜索 1. 第一次搜索时,会生成这批数据的快照,下次再搜的时候,基于此快照进 ...
- selenium用法详解以chrome为例
selenium 是一套完整的web应用程序测试系统,包含了测试的录制(selenium IDE),编写及运行(Selenium Remote Control)和测试的并行处理(Selenium Gr ...
- 【洛谷 P4137】 Rmq Problem / mex(主席树)
题目链接 容易发现,可能答案只有\(0\).每个数,每个数\(+1\) 于是把这\(2n+1\)个数建立一个权值线段树,可持久化一下,每个节点记录这个子树中最后加入数加入的时间的最小值\(latest ...
- sqlite 一些常用的句子
有关SQLITE最完整的操作语句参考资料,应当是官方网址的http://www.sqlite.org/lang.html这个地方. select max(id) from table 取最大id ...
- 智表(ZCELL)插件产品选型说明书,市场主流插件对比,帮您选型
智表(ZCELL)插件产品选型说明书,市场主流插件对比,帮您选型. 说明书下载:地址 一. 我们为什么需要智表插件产品 客户早已养成EXCEL中的操作习惯,BS架构下,普通的网页交互,与客户习惯 ...