- 浏览: 36802 次
- 性别:
- 来自: 湖南
最新评论
-
kulinglei:
提烟而过 写道问下楼主:你是拿了别人的注册号在这里害别人,还是 ...
折半搜索 -
jy00105276:
没看代码,看描述难道是2分法?
是的话不一定是a[i-1] ...
折半搜索 -
提烟而过:
问下楼主:你是拿了别人的注册号在这里害别人,还是没事在这里装- ...
折半搜索 -
zqynux:
fffvvvzz 写道11-15
是
11 12 13 14 ...
折半搜索 -
zqynux:
额,, 就是一个NOIP题目的答案..
vijos 谁拿了最多奖学金
Controlling Companies
Some companies are partial owners of other companies because they have acquired part of their total shares of stock. For example, Ford owns 12% of Mazda. It is said that a company A controls company B if at least one of the following conditions is satisfied:
Company A = Company B
Company A owns more than 50% of Company B
Company A controls K (K >= 1) companies denoted C1, ..., CK with each company Ci owning xi% of company B and x1 + .... + xK > 50%.
Given a list of triples (i,j,p) which denote company i owning p% of company j, calculate all the pairs (h,s) in which company h controls company s. There are at most 100 companies.
Write a program to read the list of triples (i,j,p) where i, j and p are positive integers all in the range (1..100) and find all the pairs (h,s) so that company h controls company s.
PROGRAM NAME: concom
INPUT FORMAT
Line 1: n, the number of input triples to follow
Line 2..n+1: Three integers per line as a triple (i,j,p) described above.
SAMPLE INPUT (file concom.in)
3
1 2 80
2 3 80
3 1 20
OUTPUT FORMAT
List 0 or more companies that control other companies. Each line contains two integers that denote that the company whose number is the first integer controls the company whose number is the second integer. Order the lines in ascending order of the first integer (and ascending order of the second integer to break ties). Do not print that a company controls itself.
SAMPLE OUTPUT (file concom.out)
1 2
1 3
2 3
题目
有些公司是其他公司的部分拥有者,因为他们获得了其他公司发行的股票的一部分。例如,福特公司拥有马自达公司12%的股票。据说,如果至少满足了以下三个条件之一,公司A就可以控制公司B了:
公司A = 公司B。
公司A拥有大于50%的公司B的股票。
公司A控制K(K >= 1)个公司,记为C1, ..., CK,每个公司Ci拥有xi%的公司B的股票,并且x1+ .... + xK > 50%。
给你一个表,每行包括三个数(i,j,p);表明公司i享有公司j的p%的股票。计算所有的数对(h,s),表明公司h控制公司s。至多有100个公司。
写一个程序读入N组数(i,j,p),i,j和p是都在范围(1..100)的正整数,并且找出所有的数对(h,s),使得公司h控制公司s。
INPUT FORMAT
第一行: N,表明接下来三对数的数量。{即(i,j,p)的数量}
第二行到第N+1行: 每行三个整数作为一个三对数(i,j,p),如上文所述。{表示公司 i 拥有公司j p%的股份}
SAMPLE INPUT (file concom.in)
3
1 2 80
2 3 80
3 1 20
OUTPUT FORMAT
输出零个或更多个的控制其他公司的公司。每行包括两个整数A、B,表示A公司控制了B公司。将输出的数对以升序排列。
请不要输出控制自己的公司。
[编辑] SAMPLE OUTPUT (file concom.out)
1 2
1 3
2 3
==================== 华丽的分割线 ====================
这题对我来说好难,, 实在是难弄出来,, 后来看了提示之后才想到用两个矩阵分别存储公司控制的情况, 如: cont[i][j] 但如果为1 的话代表i公司控制了j公司. 还有一个是占有的股权的矩阵, 如: owns[i][j] 代表i公司直接或间接地占有j公司多少股权..
Some companies are partial owners of other companies because they have acquired part of their total shares of stock. For example, Ford owns 12% of Mazda. It is said that a company A controls company B if at least one of the following conditions is satisfied:
Company A = Company B
Company A owns more than 50% of Company B
Company A controls K (K >= 1) companies denoted C1, ..., CK with each company Ci owning xi% of company B and x1 + .... + xK > 50%.
Given a list of triples (i,j,p) which denote company i owning p% of company j, calculate all the pairs (h,s) in which company h controls company s. There are at most 100 companies.
Write a program to read the list of triples (i,j,p) where i, j and p are positive integers all in the range (1..100) and find all the pairs (h,s) so that company h controls company s.
PROGRAM NAME: concom
INPUT FORMAT
Line 1: n, the number of input triples to follow
Line 2..n+1: Three integers per line as a triple (i,j,p) described above.
SAMPLE INPUT (file concom.in)
3
1 2 80
2 3 80
3 1 20
OUTPUT FORMAT
List 0 or more companies that control other companies. Each line contains two integers that denote that the company whose number is the first integer controls the company whose number is the second integer. Order the lines in ascending order of the first integer (and ascending order of the second integer to break ties). Do not print that a company controls itself.
SAMPLE OUTPUT (file concom.out)
1 2
1 3
2 3
题目
有些公司是其他公司的部分拥有者,因为他们获得了其他公司发行的股票的一部分。例如,福特公司拥有马自达公司12%的股票。据说,如果至少满足了以下三个条件之一,公司A就可以控制公司B了:
公司A = 公司B。
公司A拥有大于50%的公司B的股票。
公司A控制K(K >= 1)个公司,记为C1, ..., CK,每个公司Ci拥有xi%的公司B的股票,并且x1+ .... + xK > 50%。
给你一个表,每行包括三个数(i,j,p);表明公司i享有公司j的p%的股票。计算所有的数对(h,s),表明公司h控制公司s。至多有100个公司。
写一个程序读入N组数(i,j,p),i,j和p是都在范围(1..100)的正整数,并且找出所有的数对(h,s),使得公司h控制公司s。
INPUT FORMAT
第一行: N,表明接下来三对数的数量。{即(i,j,p)的数量}
第二行到第N+1行: 每行三个整数作为一个三对数(i,j,p),如上文所述。{表示公司 i 拥有公司j p%的股份}
SAMPLE INPUT (file concom.in)
3
1 2 80
2 3 80
3 1 20
OUTPUT FORMAT
输出零个或更多个的控制其他公司的公司。每行包括两个整数A、B,表示A公司控制了B公司。将输出的数对以升序排列。
请不要输出控制自己的公司。
[编辑] SAMPLE OUTPUT (file concom.out)
1 2
1 3
2 3
==================== 华丽的分割线 ====================
这题对我来说好难,, 实在是难弄出来,, 后来看了提示之后才想到用两个矩阵分别存储公司控制的情况, 如: cont[i][j] 但如果为1 的话代表i公司控制了j公司. 还有一个是占有的股权的矩阵, 如: owns[i][j] 代表i公司直接或间接地占有j公司多少股权..
/* LANG: C ID: zqy11001 PROG:concom */ #include <stdio.h> #define MAX 101 #define getint(i) scanf("%d", &i) int n; int owns[MAX][MAX]; int cont[MAX][MAX]; void addcont(int a, int b) { int i; if(cont[a][b]){ return; } cont[a][b] = 1; for(i = 1; i < MAX; i++){ owns[a][i] += owns[b][i]; } for(i = 1; i < MAX; i++){ if(cont[i][a]){ addcont(i, b); } } for(i = 1; i < MAX; i++){ if(owns[a][i] > 50){ addcont(a, i); } } } void addown(int a, int b, int t) { int i; for(i = 1; i < MAX; i++){ if(cont[i][a]){ owns[i][b] += t; } } for(i = 1; i < MAX; i++){ if(owns[i][b] > 50){ addcont(i, b); } } } int main(void) { int a, b, t; int i, j, k; freopen("concom.in", "r", stdin); freopen("concom.out", "w", stdout); getint(n); for(i = 1; i < MAX; i++){ cont[i][i] = 1; } for(i = 1; i <= n; i++){ getint(a); getint(b); getint(t); addown(a, b, t); } for(i = 1; i < MAX; i++){ for(j = 1; j < MAX; j++){ if(cont[i][j] && i != j){ printf("%d %d\n", i, j); } } } // getch(); return 0; }
发表评论
-
重做 USACO 1.1 黑色星期五
2010-03-31 18:59 1295/* LANG: C ID: zqynux11 PROG ... -
重做 USACO 1.1 黑色星期五
2010-03-31 18:59 842解释什么的就算了吧,, /* LANG: C ID: ... -
重做 USACO 1.1 贪婪的送礼者
2010-03-31 18:58 1252这题的话, 我用的是个结构体, 记录各个人.. 我错了的地 ... -
重做 USACO 1.1 你的飞碟在这儿
2010-03-31 18:56 888不解释了.. /* LANG: C ID: zqynu ... -
USACO 3.1 Shaping Regions 形成的区域
2010-03-30 20:01 1537这题二话不说, 用map[i][j]表示坐标为i, j的点 ... -
USACO 3.1 Humble Numbers 丑数
2010-03-28 15:31 1487从这一题开始,, 以后题目我就不贴上来了... 自己去看吧 ... -
USACO 3.1 Score Inflation 总分
2010-03-27 20:19 842Score Inflation The more point ... -
USA 3.1 Agri-Net 最短网络
2010-03-27 20:14 885Agri-Net Russ Cox Farmer John ... -
USACO 2.4 Fractions to Decimals 分数化小数
2010-03-27 15:47 1291Fractions to Decimals Write a ... -
USACO 2.4 Bessie Come Home 回家
2010-03-27 13:01 1030Bessie Come Home Kolstad & ... -
USACO 2.4 Cow Tours 牛的旅行
2010-03-27 11:57 1127Cow Tours Farmer John has a nu ... -
USACO 2.4 Overfencing 穿越栅栏
2010-03-25 18:18 966USACO 2.4 Overfencing 穿越栅栏 Over ... -
USACO 2.4 The Tamworth Two 两只塔姆沃斯牛
2010-03-23 22:05 1220The Tamworth Two BIO '98 - Rich ... -
USACO 1.1 Broken Necklace 破碎的项链
2010-03-22 18:04 2128Broken Necklace You have a neck ... -
USACO 2.3 Money Systems 货币系统
2010-03-22 13:31 985Money Systems The cows have no ... -
USACO 2.3 Cow Pedigrees 奶牛家谱
2010-03-21 15:02 1436Farmer John is considering purc ... -
USACO 2.3 Zero Sum 零的算式和
2010-03-20 14:30 1792Zero Sum Consider the sequence ... -
USACO Longest Prefix最长前缀
2010-03-17 12:28 1438Longest Prefix IOI'96 The stru ... -
vijos 谁拿了最多奖学金
2010-03-17 12:25 1105描述 Description 某校的惯例是在每 ... -
USACO 2.2 Subset Sums集合
2010-03-16 12:18 1475USACO 2.2 Subset Sums集合 For ...
相关推荐
【标题】:“usaco2.3解题报告1”涉及的知识点主要集中在动态规划和数据结构上,特别是字符串处理和二叉树。 【描述】:“usaco2.3解题报告1”描述了一个生物学背景的问题,需要计算一个大写字母序列最长的前缀可以...
USACO(美国计算机奥林匹克竞赛)是针对高中生的一项编程竞赛,旨在提高参赛者的算法设计、问题解决和编程技能。这个压缩包文件包含了USACO网站上的题目,对于准备机考和提升编程能力非常有帮助。下面我们将深入探讨...
《USACO1.4~2.3C语言题解》是针对USACO(美国计算机奥林匹克)编程竞赛中1.4至2.3阶段的题目解析,主要使用C语言进行解答。USACO旨在提升高中生的算法设计和编程能力,而C语言作为基础且高效的编程语言,常常被用于...
这个压缩包包含了USACO章节2.3到5.5的源程序,涵盖了多个阶段的学习内容。 USACO的每个章节通常会讲解一个或多个编程概念,包括基础的算法、数据结构以及更复杂的主题。让我们详细探讨这些章节可能涉及的知识点: ...
1. 学习基本编程概念:了解编程语言的基础语法,如变量、条件语句、循环控制、函数定义等。 2. 掌握数据结构:理解不同类型的数据结构如何存储和操作数据,以及它们在解决问题时的优势。 3. 学习算法:学习各种经典...
### USACO 2010-2011 季度竞赛概览与关键信息 #### 一、概述 美国计算机奥林匹克(USACO)是面向全球中学生的计算机科学竞赛,旨在发掘并培养计算机科学领域的年轻人才。USACO 2010-2011 季度竞赛于 2010 年 11 月...
USACO,全称为United States Computer Olympiad,是一项面向全球中学生的计算机编程竞赛,旨在提升参赛者的算法设计、问题解决和编程能力。该比赛每年举行,分为青铜、白银、黄金和铂金四个级别,难度逐渐递增。...
《USACO 合集:全面解析与学习指南》 USACO,全称为USA Computing Olympiad,是一项针对中学生举办的在线编程竞赛,旨在提升参赛者的算法设计和问题解决能力。这个合集提供了丰富的资源,包括英文原题、中文译题、...
1.1 可能是关于编程语言基础的讲解,例如变量、控制流(条件语句、循环语句)以及函数的使用。这些是任何编程语言的基础,掌握好它们是编写程序的前提。 1.2 可能涵盖了输入/输出(I/O)处理,这是处理用户交互或...
1. **基础语法**:包括变量声明、运算符、控制流程(if-else, for, while循环)、函数定义与调用等。 2. **数组与字符串操作**:在USACO中,数组常用于处理序列数据,字符串则涉及文本处理问题,如查找、替换和比较...
USACO,全称United States Computer Olympiad,是一项面向全球中学生的计算机编程竞赛,旨在提升参赛者在算法设计、问题解决以及计算机科学基础方面的技能。这个压缩包文件提供了丰富的资源,帮助参赛者或学习者更好...
【标题】"usaco traning全部数据" 涉及的是一个编程竞赛训练平台——USACO(USA Computing Olympiad)的数据集。USACO是一个专门为美国中学生设计的在线编程竞赛,旨在提升参赛者的算法设计和编程能力,特别是在解决...
USACO(美国计算机奥林匹克竞赛)是面向全球中学生的一项编程竞赛,主要涉及算法和问题解决能力。这个压缩包文件“usaco历年测试数据”包含了该赛事历年的测试题目和样例输入输出数据,这对于参赛者准备比赛或者提升...
某些USACO题目的答案,很详细,代码清晰结构良好,算法高效易于调试
USACO,全称United States Computer Olympiad,是美国计算机奥林匹克竞赛,是一项旨在培养青少年编程技能和算法理解的国际性比赛。这个比赛对于有志于在计算机科学领域深入发展的学生来说,具有很高的学习价值和挑战...
### USACO心得及总结 #### 第一部分 动态规划 **USACO**(美国计算机奥林匹克竞赛)作为一项国际知名的编程竞赛,不仅考验参赛者的编程能力,还对其算法理解和应用有着极高的要求。其中,动态规划(Dynamic ...
USACO,全称United States阿Olympiad in Computer Science,是美国计算机科学奥林匹克竞赛,旨在激发中学生对计算机科学的兴趣,尤其是算法和编程技能。这个"USACO全部测试数据.zip"压缩包包含了历年来USACO比赛的...
USACO(USA Computing Olympiad)是美国计算机奥林匹克竞赛,是一项面向中学生的编程竞赛,旨在提升学生的算法设计、编程和问题解决能力。该比赛通常包括训练营和一系列在线比赛,最终选拔出优秀选手代表美国参加...
USACO,全称United States Computer Olympiad,是一项面向全球中学生的计算机编程竞赛,旨在提升参赛者的算法设计、编程能力和问题解决能力。本压缩包包含了USACO比赛的题解、源代码以及对应的中文翻译,对于想要...
《USACO全部测试数据详解》 USACO,全称United States Computer Olympiad,是美国计算机奥赛,是一项旨在提升青少年计算机编程能力的竞赛。该竞赛覆盖了基础算法、数据结构、问题解决等多个计算机科学的重要领域,...