【题目链接】:http://codeforces.com/problemset/problem/417/D

【题意】

有n个人共同完成m个任务;
每个人有可以完成的任务集(不一定所有任务都能完成);
(有重叠也无所谓);
然后它完成这些任务需要报酬xi;
同时它需要特殊物品的数量达到ki才会愿意去做这些任务;
这样特殊物品的单价为b;
然后问你完成这m个任务需要花费多少钱.

【题解】

假设我们最后选了几个人;
它们能够完成m项任务;
则这个特殊物品的数量应该是这些人里面ki的最大值;
根据这个;
我们一开始先把所有人的信息按照ki升序排;
然后做状态压缩DP;
设dp[i]表示完成任务的情况为i(用二进制表示)的最小花费;
则按照顺序选择;
如果在某一时刻;
dp[2m−1]有值了(或者发生了改变);
则可以直接用它+a[i].k*b来更新答案;
因为此时肯定是因为选择了第i个人,所以才发生了变化;
而又因为是升序排的,所以肯定是这个人的k值最大;
所以特殊物品的数量就是选择它啦.>_<
最后的答案大于1018QAQ

【Number Of WA】

1

【完整代码】

#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x)
#define Open() freopen("D:\\rush.txt","r",stdin)
#define Close() ios::sync_with_stdio(0),cin.tie(0)typedef pair<int,int> pii;
typedef pair<LL,LL> pll;const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int M = 110e4;
const int N = 1e2+10;struct abc{int x,k,sta;
};int temp,n,m;
LL dp[M],b,ans = -1;
abc a[N];int main(){//Open();Close();//scanf,puts,printf not use//init??????cin >> n >> m >> b;rep1(i,1,n){int num;cin >> a[i].x >> a[i].k >> num;rep1(j,1,num){int x;cin >> x;a[i].sta |= (1<<(x-1));}}sort(a+1,a+1+n,[&](abc a,abc b){ return a.k<b.k;});int ma = 1<<m;ms(dp,-1);dp[0] = 0;rep1(i,1,n){rep1(j,0,ma-1){if (dp[j]==-1) continue;int status = j | a[i].sta;if (dp[status]==-1){dp[status] = dp[j]+a[i].x;}elsedp[status] = min(dp[status],dp[j]+a[i].x);}if (dp[ma-1]!=-1){if (ans==-1){ans = dp[ma-1]+b*a[i].k;}elseans = min(ans,dp[ma-1]+b*a[i].k);}}if (ans==-1)cout <<-1<<endl;elsecout << ans << endl;return 0;
}

【codeforces 417D】Cunning Gena相关推荐

  1. 【CodeForces - 144C】Anagram Search(尺取,滑窗问题,处理字符串计数)

    题干: A string t is called an anagram of the string s, if it is possible to rearrange letters in t so ...

  2. 【CodeForces - 574B】Bear and Three Musketeers (枚举边,思维,优秀暴力)

    题干: Do you know a story about the three musketeers? Anyway, you will learn about its origins now. Ri ...

  3. 【CodeForces - 608C】Chain Reaction (二分 或 dp ,思维)

    题干: 题目大意: 题意是在一条直线上坐落着不同位置的灯塔,每一个灯塔有自己的power level,当作是射程范围.现在从最右边的灯塔开始激发,如果左边的灯塔在这个灯塔的范围之内,那么将会被毁灭.否 ...

  4. 「一题多解」【CodeForces 85D】Sum of Medians(线段树 / 分块)

    题目链接 [CodeForces 85D]Sum of Medians 题目大意 实现一个setsetset,支持插入,删除,求∑a5k+3∑a5k+3\sum a_{5k+3}.注意,setsets ...

  5. 【CodeForces 997C】Sky Full of Stars(组合计数)

    题目链接:[CodeForces 997C]Sky Full of Stars 官方题解:Codeforces Round #493 - Editorial 题目大意:有一个n×nn×nn\times ...

  6. 【codeforces 812C】Sagheer and Nubian Market

    [题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...

  7. 【codeforces 508B】Anton and currency you all know

    [题目链接]:http://codeforces.com/contest/508/problem/B [题意] 给你一个奇数; 让你交换一次数字; 使得这个数字变成偶数; 要求偶数要最大; [题解] ...

  8. 【codeforces 711B】Chris and Magic Square

    [题目链接]:http://codeforces.com/contest/711/problem/B [题意] 让你在矩阵中一个空白的地方填上一个正数; 使得这个矩阵两个对角线上的和; 每一行的和,每 ...

  9. 【codeforces 807C】Success Rate

    [题目链接]:http://codeforces.com/contest/807/problem/C [题意] 给你4个数字 x y p q 要求让你求最小的非负整数b; 使得 (x+a)/(y+b) ...

  10. 【codeforces 766E】Mahmoud and a xor trip

    [题目链接]:http://codeforces.com/contest/766/problem/E [题意] 定义树上任意两点之间的距离为这条简单路径上经过的点; 那些点上的权值的所有异或; 求任意 ...

最新文章

  1. iOS 开发 OC编程 字典和集合 排序方法
  2. 驱动06.触摸屏驱动程序
  3. Flowable 数据库表结构 ACT_GE_PROPERTY
  4. Solr连接MYSQL导入源数据生成索引
  5. cnpm安装webpack_【6000字】从0到1,配置webpack
  6. 2018为什么你一定要学Python
  7. php 连接芒果数据库,PHP MongoDB示例
  8. 芯片厂商的电机控制方案
  9. 微信公众号(头部GIF动图)制作方法
  10. js逆向巨潮mcode
  11. rabbit原理及项目应用
  12. C语言:利用指针编写程序,用梯形法计算给定的定积分
  13. 如何在海外高效的推广APP?海外推广产品该注意哪些点?
  14. 方法: 跳转App Store更新你应用的URL究竟该怎么写
  15. 【python 接口开发】如何用python开发自己的接口
  16. 【学习笔记】常见测试类型测试方法
  17. php think addon,think-addons
  18. CSS十问——好奇心+刨根问底=CSSer
  19. linux驱动开发篇(三)—— 总线设备驱动模型
  20. 计算机桌面上的公文包怎么加密,win7系统公文包如何用?win7公文包的使用教程...

热门文章

  1. array_unshift php,php array_unshift函数怎么用?
  2. iOS- 利用UIImageView自己整了个不会说话的汤姆猫
  3. gis核密度分析工具_核密度分析 (Spatial Analyst)
  4. php pecl libevent,ubuntu – 安装PHP libevent PECL包的问题
  5. OpenGL三维变换与三维投影实例(行星绕日旋转)
  6. python进程和线程大全
  7. 微信小程序,仓库系统,可以扫描入库查询
  8. 安装Bouncy Castle(JAVA)
  9. 《科技创业启示录》一第1章 乔斯·怀特
  10. 全国省份、城市关联表 mysql(含城市名拼音)