【Codeforces Gym】100162 H Temperature
来源:互联网 发布:英雄联盟mac有国服? 编辑:程序博客网 时间:2024/05/21 09:50
大意:
有n个学生在做测量温度的实验,但是有些同学还没做完就上交了实验报告。温度的测量值精确到整数。对于第i个同学,如果他做完了实验,那么他的报告中温度值就是他实际的测量值,否则他会这么做:
(1) 在做完实验的同学中找一些人参考(至少能找到一个人参考)。
(2) 求这些人的温度平均值并下取整的到温度t。
(3) 随机修改这个值为 t + random(-xi, xi),random(-xi, xi) 是[-xi~xi]中随机取的一个整数,包含两端的值。
现在知道每个同学提交的温度值ti和随机系数xi,老师想知道至少有多少人做完了实验。
数据范围:n <= 20, 1 <= ti<= 10^6, 0 <= xi <= 10^6。
Solution
n=20,考虑状压
假如有一个集合,集合中的元素表示这个人是做完实验的。
那么 从这个集合中去掉一个元素的集合 能拓展到的人 在原集合中都能拓展到。
那么只需要考虑恰好同时参考了这个集合的所有人的情况转移即可。
#include<stdio.h>#include<cstring>#include<algorithm>int n,cas,f[1050000],r[25],t[25];int main(){ while (~scanf("%d",&n)) { for (int i=1;i<=n;i++) scanf("%d%d",t+i,r+i); int lim=1<<n,ans=23333333; memset(f,0,sizeof(f)); for (int i=1,tt=0,adv=0;i<lim;i++,tt=0,adv=0) { for (int j=1,pj=1;pj<=i;j++,pj<<=1) if (i&pj) f[i]|=f[i^pj]|pj,adv+=t[j],tt++; adv=tt?adv/tt:233333333; for (int j=1;j<=n;j++) if (t[j]-r[j]<=adv && adv<=t[j]+r[j]) f[i]|=(1<<j-1); if (f[i]==lim-1) ans=std::min(ans,tt); } printf("Case %d: %d\n",++cas,ans); }}
0 0
- 【Codeforces Gym】100162 H Temperature
- [Codeforces Gym]100162 H - Temperature 状态压缩dp
- codeforces GYM 100792H
- Codeforces Gym 100623H Problem H. Holes
- Codeforces Gym 100342H Hard Test 构造
- CodeForces Gym 100989H Queue (A)
- Codeforces Gym 100962 H. Hans Zimmer
- [DP] Codeforces Gym 101002 H. Jewel Thief
- Codeforces Gym 101234H Split Game
- Codeforces Gym 100345H Settling the Universe Up Bitset+倒推
- codeforces Gym 100500Problem H. ICPC Quest 简单DP
- Codeforces Gym 100733H Designation in the Mafia flyod
- Codeforces Gym 101164 H. Pub crawl (凸包)
- [DP 决策单调性] Codeforces Gym 101002H .Jewel Thief
- Codeforces Gym 100015H Hidden Code(暴力)
- 【Codeforces Gym
- 【codeforces Gym
- codeforces Gym
- 你还在为无法完美卸载SQL Server 2008 R2而烦恼吗?
- Android Universal Image Loader
- 基于DDD的.NET开发框架ABP实例,多租户 (Sass)应用程序,采用.NET MVC, Angularjs, EntityFramework-介绍
- spring mvc+spring+mybatis的配置
- nginx(1): linux下的安装
- 【Codeforces Gym】100162 H Temperature
- (SFINAE)C++检查成员函数是否存在
- [percona-toolkit]pt-query-digest用法
- 微信企业号注册教程 视频教程 公众号 服务号 订阅号
- 解析json串的两种方式
- Android混淆、逆向
- HIVE下分布式生成整型唯一ID
- RecycleView实现footer功能
- 777C Alyona and Spreadsheet