Balanced Teams (USACO Jan Bronze 2014)
既然是bronze,毫无压力的AC了.
就是个深搜,当然加个剪枝--最后一个组不用搜.
恩可以一个一个组分层次dfs,这样会跑得飞起~~也不容易错
#include <cstdio>
int f[13],i,su,tt1,tt2,lev[4],min;
bool has[13];
inline int md(int a,int b,int c,int d){
tt1=a,tt2=a;
if(tt1<b)tt1=b;
if(tt1<c)tt1=c;
if(tt1<d)tt1=d;
if(tt2>b)tt2=b;
if(tt2>c)tt2=c;
if(tt2>d)tt2=d;
return tt1-tt2;
}
void dfs(int depth){
int i,j,k;
if(depth==3){
lev[3]=su-lev[0]-lev[1]-lev[2];
i=md(lev[0],lev[1],lev[2],lev[3]);
if(i<min) min=i;
return;
}
for(i=0;i<12;++i){
if(has[i]) continue;
has[i]=true;
for(j=i+1;j<12;++j){
if(has[j]) continue;
has[j]=true;
for(k=j+1;k<12;++k){
if(has[k]) continue;
has[k]=true;
lev[depth]=f[i]+f[j]+f[k];
dfs(depth+1);
has[k]=false;
}
has[j]=false;
}
has[i]=false;
}
}
int main(){
for(i=0;i<12;++i) scanf("%d",f+i),su+=f[i];
min=0x7fffffff;
dfs(0);
printf("%d\n", min);
return 0;
}
Balanced Teams (USACO Jan Bronze 2014)的更多相关文章
- 【CF1133E】K Balanced Teams(动态规划,单调队列)
[CF1133E]K Balanced Teams(动态规划,单调队列) 题面 CF 让你把一堆数选一些出来分成不超过\(K\)组,每一组里面的最大值和最小值之差不超过\(5\),求最多有多少个人元素 ...
- Codeforces 544E K Balanced Teams (DP)
题目: You are a coach at your local university. There are nn students under your supervision, the prog ...
- CF1133E K Balanced Teams(DP)
/* 排序之后每个点往前能选择的是一段区间, 所以我们实际上转移位置是确定的 然后f[i][j]表示到了i选了j段的最大贡献, 显然状态数是O(n^2)的, 转移是O(1)的 */ #include& ...
- codeforces 1133E K Balanced Teams
题目链接:http://codeforces.com/contest/1133/problem/E 题目大意: 在n个人中找到k个队伍.每个队伍必须满足最大值减最小值不超过5.求满足条件k个队伍人数的 ...
- E. K Balanced Teams
类比背包问题,为每个学生附加一个权重$pos[i]$,意思是选择该学生后,之后可以选择$p[i]~p[i]+5$的学生. 转换公式: $$d[i][j]=max(d[i+1][q],d[i+pos][ ...
- Balanced Photo(USACO)
题目大意: 我们有一个数列,数列中有n个数,对于一个数ai,在它左边的比他大的数的个数为li,右边比他大的数的个数为ri,若li,ri中的较大者比较小者的两倍还大,那么他就是一个不平衡数,求不平衡数的 ...
- [usaco jan 09] 安全路径 travel [最短路径树]
题面: 传送门 思路: 既然最后一条边不能走,那么就一定是换了一条路,一条不经过这最后一条边的路 如果想要这条路最短,那么其在路上一定尽可能多地走了最短路径 因此,我们对这张图跑一遍从1开始的单源最短 ...
- [usaco jan 09] 气象牛 baric [dp]
题面: 传送门 思路: 题意有点绕,实际上就是给你一个计算规则,让你取最少的元素,通过这个计算方式,得到一个小于指定误差上限的结果 这个规则分为三个部分,这里分别用pre,sum,suf表示 因为给定 ...
- K Balanced Teams CodeForces - 1133E (Dp)
题意: 给出 n 个数,选取其中若干个数分别组成至多 k 组,要求每组内最大值与最小值的差值不超过5,求最后被选上的总人数. 题解: 将a[1∼n] 从小到大排序, f[i][j] 表示到第 i 个数 ...
随机推荐
- 常用js正则
selectedName = selectedName.replace(/,$/, '');//去除尾部字符串 selectedCode = selectedCode.replace(/,$/, '' ...
- final和static
/* final修饰符 1. final修饰的类不能被继承,没有子类 2. final修饰的方法不能被子类覆盖 3. final修饰的变量表示常量,只能被赋值一次 4. final 修饰 ...
- nginx 日志怎么实现显示真实客户端IP
这篇文章页不错: http://www.tuicool.com/articles/E32mYf 假如说我们现在的架构是,nginx做反向代理,apache做web服务器.那么我们怎么让我的web服务器 ...
- 详解HTML中的window对象和document对象
Window -- 代表浏览器中一个打开的窗口: 对象属性 window //窗口自身 window.self //引用本窗户window=window.self window.name //为窗口命 ...
- 【URAL 1917】Titan Ruins: Deadly Accuracy(DP)
题目 #include<cstdio> #include<algorithm> using namespace std; #define N 1005 int n, m, cn ...
- int方法
代码 #int内部功能 name='Kamil.Liu' age=18 num=-11 print(dir(age)) print(age.bit_length())#返回表示当前数字占用的最少位数 ...
- HDU 1285 确定比赛名次
传送门 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- C# WPF 显示图片和视频显示 EmuguCv、AForge.Net测试(续)
介绍 本文是接着上文<C# WPF 显示图片和视频显示 EmuguCv.AForge.Net测试>写的,建议先看下上文,因为有些代码还需要了解. 增添 接着上文的代码,我们可以在事件处理方 ...
- POJ2392Space Elevator(贪心+背包)
Space Elevator Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9970 Accepted: 4738 De ...
- 依赖管理工具漫谈--从Maven,Gradle到Go
http://jolestar.com/dependency-management-tools-maven-gradle/