noip2006普及组pascal试题解答

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了noip2006普及组pascal试题解答相关的知识,希望对你有一定的参考价值。

普及组(Pascal 语言)参考答案与评分标准

一、单项选择题:(每题 1.5 分)由OIFans.cn收集
1. D 2. B 3. B 4. C 5. B 6.B 7. C 8. A 9. D 10. D

11. C 12. D 13. C 14. B 15. C 16. B 17. B 18. A 19. C 20. B

二、问题求解:(每题 5 分)

1. 4 次 (1 分),
第一步:分成 3 组:27,27,26,将前 2 组放到天平上(4 分)。

2.有获胜策略(1 分),第 1 次在第 5 堆中取 32 颗石子(4 分),。

三、阅读程序写结果

1. 10,10 (对 1 个数给 4 分,无逗号扣 1 分)

2. 6 28 496 8128 33550336

(前 2 个对 1 个数给 1 分,后 3 个对 1 个数给 2 分)

3. 5

4. 6 2 5 4 3 7 9 9 7 3 4 5 2 6(数字之间无空格扣 2 分)

四、完善程序(前 4 空(①--④),每空 2.5 分,后 6 空(⑤--⑩),每空 3 分)

1.① k=n (或 n=k)

② count mod 5=0

③ perm(k+1)由OIFans.cn收集

④ a[k]:=a[j];a[j]:=t

⑤ perm(1)

2.⑥ break

⑦ t mod 50=0

⑧ a-p*b(或 a-b*p)

⑨ c*10+1 (或 10*c+1)

⑩ n

参考资料:http://www.oifans.cn/docs/noip2006/06ppans/noip2006.htm

参考技术A #include <fstream>
#include <string.h>
using namespace std;
ifstream fin("machine.in");
ofstream fout("machine.out");
const int maxn = 100+5;
int n, m, g[maxn][maxn];
int link[maxn], used[maxn];

int path(int i)

if (used[i]) return 0;
used[i] = 1;
int j;
for (j = 1; j <= m; j++) if (g[i][j])
if (!link[j] || path(link[j]))

link[j] = i;
return 1;

return 0;


main()

int i, j, k;
fin >> n >> m >> k;
memset(g, 0, sizeof(g));
for (i = 0; i < k; i++)

int temp, x, y;
fin >> temp >> x >> y;
if (x && y) g[x][y] = 1;


memset(link, 0, sizeof(link));
memset(used, 0, sizeof(used));

for (i = 1; i <= n; i++) if (path(i)) memset(used, 0, sizeof(used));
int tot = 0;
for (i = 1; i <= m; i++) if (link[i]) tot++;
fout << tot << endl;
return 0;

以上是关于noip2006普及组pascal试题解答的主要内容,如果未能解决你的问题,请参考以下文章

2006NOIP普及组试题

noip普及组2010模拟试题(pascal)

急求:信息学竞赛(普及组)的试卷(pascal)??

悬赏!急!pascal竞赛普及组模拟试题

求第十二届全国青少年奥林匹克信息学联赛(普及组PASCAL语言)复赛试题

NOIP2006普及组开心的金明