Main » 2012 » November » 01

【题目描述】

有 n 种硬币,面值分别为 v1, v2.....vn ,每种都有无限多。给定非负整数 S ,可以选用多少个硬币,使得面值之和恰好为 S ?输出硬币数目的最小值和最大值。

【输入格式】

第一行两个整数 n, S (1 < n < 100, 0 < S < 100000)。

第二行 n 个整数 v{i=1..n} (1 < vi < S) 。

【输出格式】

第一行两个整数,分别表示硬币数目的最小值 a 和最大值 b 。无解则输出 -1 。

第二行 a 个整数分别表示使用的是第几种硬币。

第三行 b 个整数分别表示使用的是第几种硬币。

【样例输入】

6 12 
1 2 3 4 5 6

【样例输出】

2 12 
6 6
1 1 1 1 1 1 1 1 1 1 1 1

【提示】

样例是特殊的,编号和面值是相同的。你 ... Read more »

Views: 2334 | Added by: dandan | Date: 2012-11-01 | Comments (0)

【问题描述】

多米诺骨牌有上下2个方块组成,每个方块中有1~6个点。现有排成行的n个多米诺骨牌如图8-1所示。

编程用最少的旋转次数使多米诺骨牌上下2行点数之差达到最小。上方块中点数之和记为sum1,下方块中点数之和记为sum2,它们的差为|sum1-sum2|。例如在图8-1中,sum1=6+1+1+1=9,sum2=1+5+3+2=11,|sum1-sum2|=2。每个多米诺骨牌可以旋转180°,使得上下两个方块互换位置。

对于图8-1中的例子,只要将最后一个多米诺骨牌旋转180°,可使上下2行点数之差为0。

【输入】

输入文件的第一行是一个正整数n(1≤n≤1000),表示多米诺骨牌数。接下来的n行表示n个多米诺骨牌的点数。每行有两个用空格隔开的正整数,表示多米诺骨牌上下方块中的点数a和b,且1≤a,b≤6。

【输出】

输出文件仅一行,包含一个整数。表示求得的最小旋转次数。

【样例】

... Read more »

Views: 633 | Added by: dandan | Date: 2012-11-01 | Comments (0)

【题目背景】

(Rainbow和Freda正在城堡里玩得开心的时候,外面传来一阵声音:小猫乖乖,把门开开~)
Rainbow:不好!是汪星人入侵!
Freda:肿么办肿么办T_T?
Rainbow:我们先躲起来观察一下汪星人的动态吧>_<!

【题目描述】

Rainbow和Freda躲到了瞭望塔里,发现汪星人这次的目标有些奇怪。
Rainbow的城堡有N扇门,从1到N标号,它们初始时都是关着的。现在来了N只汪星人,第i只汪星人会把所有标号能被i整除的门的状态改变(即把标号能被i整除的关着的门打开,把标号能被i整除的开着的门关上)。
Rainbow为城堡定义了一个不安全指数——即最后打开着的门的数目。Rainbow想请你帮忙计算,城堡的不安全指数是多少?

【输入格式】

每个测试点包括多组测试数据。
第一行一个整数T,表示一共有T组测试数据。
接下来T行每行一个整数N,表示Rainbow城堡的门的数量。

【输出格式】

输出T行,第i行的数字表示,对于第i个N,城堡的不安全指数。

【样例输入】

4 
4
10
16
27

... Read more »

Views: 548 | Added by: dandan | Date: 2012-11-01 | Comments (0)