摘要:
题意: 给定船的最大载重量和旅客人数,以及每个旅客的体重,每条船最多坐两人,求让每个旅客都上船所需船数量的最小值。 由于旅客体重范围较小,可直接遍历所有可能的体重,省去了对旅客体重值的排序。用一个数组记录每个体重旅客的人数,根据较轻体重的旅客与较重体重旅客的最佳搭配得到最优解。代码:#include<iostream>#include<cstring>using namespace std ;int main(){ int a[300] ; int m, n, i, j ; cin >> m >> n ; memset(a, 0, sizeof(
阅读全文
posted @ 2011-08-14 12:36
追逐.
阅读(615)
推荐(1)
编辑
摘要:
题意: 有N个任务,每个任务都花费一个单位的时间来完成,每个任务都有规定的时间期限,超出期限完成则要罚款。求所能使罚款最小的任务组合及最小罚款金额。 输入: 一个整数N代表任务个数,下面N行分别有两个整数,第一个为时间期限,第二个为超时罚款金额。输出: 期限内完成的任务编号,期限外完成任务编号,罚款数。 本题关键在罚款金额,所以要尽可能的使罚款金额大的任务先完成,对任务根据罚款金额从大到小排序,依次处理各个任务。得到可提前完成的任务后,对任务根据时间期限排序,使期限大的任务尽可能的靠后,这样能保证提前完成的任务数量最大。代码:#include<iostream>#include&l
阅读全文
posted @ 2011-08-14 12:36
追逐.
阅读(780)
推荐(0)
编辑
摘要:
DescriptionBackground "KO-RE-A, KO-RE-A" shout 54.000 happy football fans after their team has reached the semifinals of the FIFA World Cup in their home country. But although their excitement is real, the Korean people are still very organized by nature. For example, they have organized h
阅读全文
posted @ 2011-08-14 12:35
追逐.
阅读(338)
推荐(0)
编辑
摘要:
题意: 随意给定一串数字1,2,3,求最少多少次交换操作可以将其按升序排列,输出最少次数以及每次交换的位置。代码:#include<iostream>#include<cstring>using namespace std ;int min(int a, int b){ if(a>b) return b ; else return a ;}int main(){ int n, i, j ; int a[1001], b[1001], s[4][4] ; cin >> n ; int num[4] ; int sum, key ; memset(num,
阅读全文
posted @ 2011-08-14 12:35
追逐.
阅读(217)
推荐(0)
编辑
摘要:
题意: 给定两个字符串,求经过多少次的增删改操作可使两个字符串相同。与poj2192相似,用dp[n]记录使str1前n个字符与str2前m个字符相同的最少操作数。每次的判断都有三种情况,即str1前i个字符str2前j-1个字符,str1前i-1个字符str2前j个字符,str1前i-1个字符str2前j-1个字符。取三种情况经过本次操作后的最小值即可。 代码:#include<iostream>#include<cstring>usingnamespacestd;intmin(inta,intb,intc){intm=1000000;if(a<m)m=a;if
阅读全文
posted @ 2011-08-14 12:34
追逐.
阅读(206)
推荐(0)
编辑