【USACO 2.3】Controlling Companies (递推)
题意:A公司对B公司有控制权的条件是满足下面条件之一:A=B,A对B的股份超过50%,A控制的公司对B的股份之和超过50%。
分析:我把控制关系分个等级:第一级是直接的股份超过50%,第二级是至少需要隔着第一级控制的公司才能控制此公司,...
从第一级推到第二级,第二级推到第三级...结束条件是这一次没有增加任何控制关系。
http://train.usaco.org/usacoprob2?a=O1HFwuT0pRX&S=concom
/*
TASK:concom
LANG:C++
*/
#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
#define file(s) freopen(#s".in","r",stdin);freopen(#s".out","w",stdout)
using namespace std;
#define N 105
int m;
int c[N][N],g[N][N];
int main(){
file(concom);
scanf("%d",&m);
for(int i=;i<=m;i++){
int u,v,w;
scanf("%d %d %d",&u,&v,&w);
g[u][v]=w;
if(w>){
c[u][v]=;
} c[u][u]= c[v][v]=;
}
for(int k=;k==;){
k=;
for(int i=;i<=;i++){
int ct=,ut=,con[N],ucn[N];
for(int j=;j<=;j++)
if(c[i][j]){con[++ct]=j;}
else{ ucn[++ut]=j;}
for(int j=;j<=ut;j++){
int sum=;
for(int l=;l<=ct;l++)
{
sum+=g[con[l]][ucn[j]];
if(sum>){
k=;
c[i][ucn[j]]=;
break;
}
}
}
}
}
for(int i=;i<=;i++)
for(int j=;j<=;j++)
if(i!=j&&c[i][j])printf("%d %d\n",i,j);
return ;
}
官方题解是递归,i控制j,如果未标记过,那么标记,并且把j对其它的股份加到i对他们的股份中,于是有的就超过50,i就可以控制它了。并且所有控制i的,也可以控制j了。
【USACO 2.3】Controlling Companies (递推)的更多相关文章
- USACO Section2.3 Controlling Companies 解题报告 【icedream61】
concom解题报告------------------------------------------------------------------------------------------ ...
- 洛谷P1475 控制公司 Controlling Companies
P1475 控制公司 Controlling Companies 66通过 158提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交 讨论 题解 最新讨论 暂时没有讨论 题目描述 ...
- dp的简单递推笔记1
(1)转自rockZ的博文 UVa 10328 - Coin Toss (递推) 题意:给你一个硬币,抛掷n次,问出现连续至少k个正面向上的情况有多少种. 原题中问出现连续至少k个H的情况,很难下手. ...
- 【POJ】2229 Sumsets(递推)
Sumsets Time Limit: 2000MS Memory Limit: 200000K Total Submissions: 20315 Accepted: 7930 Descrip ...
- poj 2096 Collecting Bugs 【概率DP】【逆向递推求期望】
Collecting Bugs Time Limit: 10000MS Memory Limit: 64000K Total Submissions: 3523 Accepted: 1740 ...
- 0x02 枚举、模拟、递推
1.TYVJ1266(这站是不是已经倒闭了啊) USACO陈年老题,对于这种开关问题啊,最多只按一次,而且第一行随便按完下面的就全确定了,类似的还有固定翻转一个长度的区间,这个也是最多翻一次的而且翻的 ...
- luogu P1216 [IOI1994][USACO1.5]数字三角形 Number Triangles (递推)
链接:https://www.luogu.org/problemnew/show/P1216 题面: 题目描述 观察下面的数字金字塔. 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的 ...
- poj 2229 【完全背包dp】【递推dp】
poj 2229 Sumsets Time Limit: 2000MS Memory Limit: 200000K Total Submissions: 21281 Accepted: 828 ...
- P1466 集合 Subset Sums 搜索+递推+背包三种做法
题目描述 对于从1到N (1 <= N <= 39) 的连续整数集合,能划分成两个子集合,且保证每个集合的数字和是相等的.举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,每个子 ...
- 【BZOJ-2476】战场的数目 矩阵乘法 + 递推
2476: 战场的数目 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 58 Solved: 38[Submit][Status][Discuss] D ...
随机推荐
- OpenGL渲染流程
一.什么是openGL OpenGL被定义为“图形硬件的一种软件接口”.从本质上说,它是一个3D图形和模型库,具有高度的可移植性,具有非常快的速度. 二.管线 管线这个术语描述了opengl渲染的整个 ...
- android 性能分析案例
本章以实际案例分析在android开发中,性能方面的优化和处理.设计到知识点有弱引用,memory monitor,Allocation Tracker和leakcanary插件. 1.测试demo ...
- iOS--UIAlertView与UIAlertController和UIAlertAction之间的事儿
iOS 8的新特性之一就是让接口更有适应性.更灵活,因此许多视图控制器的实现方式发生了巨大的变化.全新的UIPresentationController在实现视图控制器间的过渡动画效果和自适应设备 ...
- Linux备份ifcfg-eth0文件导致的网络故障问题
今天在给一台操作系统为Oracle Linux Server release 5.7的服务器配置网络时,遇到了备份ifcfg-eth0配置文件,导致网卡无法绑定IP地址的情况.觉得是个有意思的案例,特 ...
- JVM之GI收集器
Garbage-First,面向服务端的垃圾收集器. 并行与并发:充分利用多核环境减少停顿时间, 分代收集:不需要配合其它收集器 空间整合:整体上看属于标记整理算法,局部(region之间)数据复制算 ...
- cglib动态代理
代理即为访问对象添加一层控制层,使其间接化,控制层可以为对象访问添加操作属性. cglib:Code Generation library, 基于ASM(java字节码操作码)的高性能代码生成包 被许 ...
- 《java JDK7 学习笔记》之Collection
一.使用Collection 收集对象 1.认识Collection架构 Java SE提供了满足各种需求的API,在使用这些API前,建议先了解其继承与接口操作架构,才能了解何时使用哪个类,以及类之 ...
- javax.crypto.BadPaddingException: Given final block not properly padded 解决方法
下面的 Des 加密解密代码,在加密时正常,但是在解密是抛出错误: javax.crypto.BadPaddingException: Given final block not properly p ...
- 网页实时聊天之PHP实现websocket
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- Javascript 中的严格模式
原文:http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html 一.概述 除了正常运行模式,ECMAscript 5添加了第 ...