noip2006普及组测评数据

Posted

tags:

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

noip2006普及组测评数据 主要是 开心的金明的十组测评数据。

告诉我你的邮箱,我给你发过去
陶陶摘苹果
开心的金明
jam的计数法
循环

也可到oifans上去下载

参考资料:noip 组委会

参考技术A in
1:
2000 8
800 2
400 5
400 5
500 3
200 2
430 4
540 3
239 3
2:
3000 12
800 2
400 5
400 5
500 3
200 2
430 4
530 3
239 3
630 4
500 2
220 3
430 3
3:
4000 15
821 3
422 5
458 5
500 3
200 2
430 4
530 3
239 3
630 4
500 2
220 3
430 3
400 5
400 5
500 3
4:
5000 18
821 3
422 5
458 5
500 3
200 2
430 4
530 3
239 3
630 4
500 2
220 3
430 3
400 5
400 5
500 3
666 3
521 4
220 1
5:
20000 18
821 3
7422 5
458 5
500 3
200 2
430 4
530 3
239 3
3630 4
500 2
220 3
430 3
2400 5
400 5
500 3
666 3
2521 4
3220 1
6:
12000 18
2758 5
3500 3
1200 2
430 4
530 3
239 3
2630 4
500 2
1120 3
1430 3
1420 5
400 1
1500 3
666 3
521 4
2430 3
1400 2
3410 4
7:
18000 20
6758 5
3500 3
1200 2
430 4
530 3
239 3
2630 4
500 2
1120 3
1430 3
1420 5
400 4
1500 3
666 3
521 4
1220 1
2430 3
1400 2
3410 4
2520 3
8:
21000 23
2821 3
2422 5
6758 5
3500 3
2758 5
1200 2
430 4
530 3
239 3
2630 4
500 2
1120 3
1430 3
1420 5
400 4
1500 3
666 3
521 4
4220 1
2430 3
1400 2
3410 4
2520 3
9:
26000 24
6608 5
2821 3
4808 5
2821 3
422 5
3500 3
1200 2
430 4
3530 3
239 3
7730 4
500 2
120 3
3430 3
420 5
2500 3
2666 3
2521 4
3220 1
1430 3
1400 2
3410 4
2520 3
2500 2
10:
1200 5
800 2
400 5
400 5
500 3
200 2
out
1:
7937
2:
11430
3:
16393
4:
19902
5:
87935
6:
51161
7:
77744
8:
97071
9:
115934
10:
4400
参考技术B program happy(input,output);
const maxn=30001;maxm=25;
var a:array[0..maxn]of longint;
v,w:array[0..maxm]of longint;
n,m,i,j:longint;
procedure readdata;
begin assign(input,'happy.in');
reset(input);
readln(n,m);
for i:=1 to m do begin readln(v[i],w[i]);
end;
close(input);
end;
procedure dp
begin fillchar(a,sizeof(a),0);
for i:=1 to m do
for j:=n downto v[i] do
if a[j]<a[j-v[i]]+v[i]*w[i] then a[j]:=a[j-v[i]]+v[i]*w[i];
assign(output,'happy.out');
rewrite(output);
writeln(a[n]);
close(output);
end;
begin readdata;
dp;
end.

NOIP2006普及组 Jam的计数法

普及组重要的模拟题。附上题目链接 https://www.luogu.org/problem/show?pid=1061 (写水题题解算是巩固提醒自己细心吧qwq)

样例输入:

2 10 5
bdfij

样例输出:

bdghi
bdghj
bdgij
bdhij
befgh

 

这题把数字转换成字符。指定一个区间[L,R],使用其中的字符作为数字使用。

拿样例数据来举例,L=2 R=10,则区间为

2 3 4 5 6 7 8 9 10
b c d e f g h i j

 

 

起始数字为bdfij,要求依次输出后面的5个数字。输出下一个数字就要对这个数字的最低一位进行进位,如果这个数字超出了区间右边界R,则向高一位进位。

bdfij最低一位是j,进一变成k,k对应的数字11超出了右边界R=10,向高一位进位。i进一变成j,但是如果i变成j那么最后一位就不能再为j了(根据题意,数字中的字符没有重复,且从左到右字典序依次增大),那么这时候再向高一位进位,f变成g,剩余h,i,j可以给前两位进行进位。修改字符串。bdfij变成了bdghi,输出然后从最后一位继续做一遍。

代码实现:

 1 var
 2         s,t,n:longint;  //s为边界L,t为边界R
 3         str:string;
 4 function w(ch:char):longint;  //函数:返回字符对应的编号
 5 begin
 6         exit(ord(ch)-ord(a)+1);
 7 end;
 8 function dw(n:longint):char;  //函数:返回编号对应的字符
 9 begin
10         exit(chr(n+ord(a)-1));
11 end;
12 procedure doit(c:longint);
13 var
14         i,last:longint;
15 begin
16         if c>5 then halt;  //输出5次后退出程序
17         for i:=length(str) downto 0 do  //从最低位开始
18         begin
19                 if i=0 then  //处理特殊情况
20                 begin
21                         last:=i;
22                         break;
23                 end;
24                 if w(str[i])+1+length(str)-i>t then continue //如果进位后超出边界R则向高一位继续
25                 else
26                 begin
27                         last:=i;  //不超出边界,last记录当前所在位数
28                         break;
29                 end;
30         end;
31         str[last]:=dw(w(str[last])+1);  //进一位
32         for i:=last+1 to length(str) do  //处理剩余的位数
33                 str[i]:=dw(w(str[i-1])+1);
34         writeln(str);  //输出
35         doit(c+1);  //继续
36 end;
37 begin
38         readln(s,t,n);
39         readln(str);
40         doit(1);
41 end.

 

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

2006NOIP普及组试题

noip2006普及组pascal试题解答

Noip2006普及组湖南省复赛成绩 速求

NOIP2006普及组 Jam的计数法

求一份noip普及组pascal语言的模拟试题(笔试)

求(NOIP2005、2006)第十一届、十二届全国青少年信息学奥林匹克联赛初赛普及组答案.