Category Archives: Olympics in Informatics

NOIP 2005获得一等奖名单(浙江)

NOIP 2005获得一等奖名单
浙江 获奖人数:54

唐文斌* I050802 绍兴一中 380
俞华程* I050803 杭州二中 270
戴鑫通 I050804 温州中学 250
谢文磊* I050805 宁波效实中学 240
刘雨辰* I050806 杭州二中 230
黄劲松* I050807 绍兴县柯桥中学 220
魏越闽* I050808 杭州学军中学 210
吴越 I050809 衢州二中 210
王远轩* I050810 余姚中学 200
许怿文 I050811 绍兴一中 200
应圣钢* I050812 杭州二中 190
朱晟 I050813 桐乡高级中学 180
周金龙* I050814 温州中学 170
陈天奇I050815松阳二中170
陈思渝I050816绍兴一中150
张路I050817余姚中学150
谢天I050818宁波镇海中学150
徐丹枫I050819绍兴一中140
刘盛琪I050820江山中学140
张金利I050821衢州二中140
俞晨光I050822宁波镇海中学140
张宇I050823绍兴一中140
赖陆航I050824杭州建兰中学140
方戈I050825杭州学军中学140
李锡峰I050826绍兴一中140
胡关亮I050827绍兴县柯桥中学140
任政I050828绍兴一中140
盛达敏I050829金华一中140
胡建丰I050830杭州外国语学校140
孟俊毅*I050831绍兴一中140
唐科尔I050832绍兴一中140
龚逸伦I050833杭州二中140
王旻* I050834绍兴县柯桥中学140
李涛I050835绍兴一中140
谢峰*I050836宁波效实中学140
傅锴铭I050837绍兴一中140
徐源I050838杭州学军中学140
张弘毅I050839杭州学军中学140
谢玮峰*I050840绍兴县柯桥中学140(80.5)
郑海斌*I050841绍兴一中130(75.5)
祝利聪I050842江山中学130(75)
林俊琦I050843宁波鄞州中学130(74.5)
沈方伟I050844绍兴一中130(72.5)
丁海淼I050845绍兴县柯桥中学130(71.5)
郑君涵I050846衢州二中130(71.5)
李青杉I050847衢州二中130(71)
胡立峰I050848绍兴一中130(70.50)
吴仲亮I050849杭州学军中学130(70)
向阳I050850杭州学军中学130(70)
杨洋I050851绍兴一中130(69.5)
姚元超I050852杭州外国语学校130(68.5)
张丹枫I050853余姚中学130(68.5)
盛斌*I050854绍兴一中130(67.5)
国家品I050855湖州中学130(66.5)

Fillchar过程全解

Fillchar是Turbo/Borland Pascal的System单元的一个标准过程,它的使用格式是:FillChar(var X; Count: Word; Value),它的功能是,把指定变量X在内存段中所占的低Count个字节赋为相同的值Value, 其中Value是填充的值,只能是Byte、Char或Boolean等单字节类型的值。在Free Pascal中稍加扩展为FillChar(var X; Count: Longint; Value), 功能没变。

[例1]:Fillchar通常用来给数据赋初值。
CODE: [Copy to clipboard]
——————————————————————————–

var a:array [1..10] of arrtype;
执行fillchar(a,sizeof(a),0);
当arrtype为
1.real(其他实数类型差不多) 使得a中的元素全部成为0.0
2.integer(byte,word,longint,shortint都相同) 全部为0
3.boolean 全部为false
4.char 全部为#0

这里使用了函数sizeof(a),其功能是返回变量a所占的总字节数,如上例返回:

当arrtype为

real sizeof(a)的值为60(每个元素占6个字节,10个元素共占60个字节)
single sizeof(a)的值为40(每个元素占4个字节,10个元素共占40个字节)
double sizeof(a)的值为80(每个元素占8个字节,10个元素共占80个字节)
extended sizeof(a)的值为100(每个元素占10个字节,10个元素共占100个字节)
comp sizeof(a)的值为80(每个元素占8个字节,10个元素共占80个字节)

integer(word) sizeof(a)的值为20 (每个元素占2个字节,10个元素共占20个字节)

byte (shortint) sizeof(a)的值为10 (每个元素占1个字节,10个元素共占10个字节)

longint sizeof(a)的值为40 (每个元素占4个字节,10个元素共占40个字节)

boolean sizeof(a)的值为10(每个元素占1个字节,10个元素共占10个字节)

char sizeof(a)的值为10 (每个元素占1个字节,10个元素共占10个字节)

所以例1的结果就是将数组a的所有元素(全部字节)用0来填充,要注意对不同类型的数据而言,对“0”的“解释”是截然不同的!对整型或实型量来讲,所有字节均为0,则该量也为0;对boolean型量(一个字节)来讲,0表示false(非0数表示true),则该量为false;对char型量(一个字节)来讲,0表示ASCII码值为0的字符,则该量为#0。

Read More

基本算法

一、数论算法

1.求两数的最大公约数

function gcd(a,b:integer):integer;
begin
  if b=0 then gcd:=a
  else gcd:=gcd (b,a mod b);
end;

2.求两数的最小公倍数

function lcm(a,b:integer):integer;
begin
  if a 0 do inc(lcm,a); end;

3.素数的求法
A.小范围内判断一个数是否为质数:

function prime (n: integer): Boolean;
  var I: integer;
  begin
    for I:=2 to trunc(sqrt(n)) do
    if n mod I=0 then begin
      prime:=false; exit;
    end;
    prime:=true;
  end;

B.判断longint范围内的数是否为素数(包含求50000以内的素数表):

procedure getprime;
  var
    i,j:longint;
    p:array[1..50000] of boolean;
  begin
    fillchar(p,sizeof(p),true);
    p[1]:=false;
    i:=2;
    while i=x then break
      else if x mod pr[i]=0 then exit;
    prime:=true;
  end;{prime}
Read More

一些 Online Judge 网站网址

USACO http://ace.delos.com/usacogate (经典)

浙江大学 http://acm.zju.edu.cn

北京大学 http://acm.pku.edu.cn

VIJOS http://www.vijos.cn

同济大学 http://acm.tongji.edu.cn (Coming back…)

天津大学 http://acm.tju.edu.cn/toj

哈工大 http://acm.hit.edu.cn/acm.php

吉林大学 http://acm.jlu.edu.cn

四川大学 http://cs.scu.edu.cn/acm

汕头大学 http://acm.stu.edu.cn

中国科技大学 http://acm.ustc.edu.cn/index.php

杭州电子科技大学 http://acm.hdu.edu.cn

湖南大学 http://acm.hnu.cn:8080/online

福州大学 http://acm.fzu.edu.cn

厦门大学 http://acm.xmu.edu.cn/JudgeOnline

华中科技大学 http://acm.hust.edu.cn/JudgeOnline

浙江工业大学 http://acm.zjut.edu.cn

香港信息学竞赛 HKOI http://judge.hkoi.org

UVA http://acm.uva.es (题目很杂)

URAL http://acm.timus.ru (偏重数学)

SGU http://acm.sgu.ru

EL Judge http://acm.mipt.ru/judge/problems.pl

SPOJ http://www.spoj.pl

E-OLIMP http://e-olimp.com.ua