摘要: 描述13号又是星期五是一个不寻常的日子吗?13号在星期五比在其他日少吗?为了回答这个问题,写一个程序来计算在n年里13日落在星期一,星期二......星期日的次数.这个测试从1900年1月1日到1900+n-1年12月31日.n是一个非负数且不大于400.这里有一些你要知道的:1900年1月1日是星期一.4,6,11和9月有30天.其他月份除了2月都有31天.闰年2月有29天,平年2月有28天.年份可以被4整除的为闰年(1992=4*498 所以 1992年是闰年,但是1990年不是闰年)以上规则不适合于世纪年.可以被400整除的世纪年为闰年,否则为平年.所以,1700,1800,1900和2 阅读全文
posted @ 2012-10-18 02:09 翱翔的感觉 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 对于一群要互送礼物的朋友,你要确定每个人收到的礼物比送出的多多少(and vice versa for those who view gift giving with cynicism)。在这一个问题中,每个人都准备了一些钱来送礼物,而这些钱将会被平均分给那些将收到他的礼物的人。 然而,在任何一群朋友中,有些人将送出较多的礼物(可能是因为有较多的朋友),有些人有准备了较多的钱。给出一群朋友, 没有人的名字会长于 14 字符,给出每个人将花在送礼上的钱,和将收到他的礼物的人的列表,请确定每个人收到的比送出的钱多的数目。格式PROGRAM NAME: gift1INPUT FORMAT:(file 阅读全文
posted @ 2012-10-18 01:36 翱翔的感觉 阅读(142) 评论(0) 推荐(0) 编辑
摘要: View Code 1 program zuiyou; 2 const 3 maxl=1000; 4 type 5 sta=record 6 m:array[1..5]of longint; 7 last,done,num,la:longint; 8 end; 9 //sta.la为了记录搜索序列,方便后来打印,sta.last模拟数据栈,sta.num表示当前数据栈前面有多少数据;sta.done表示生成当前状态所用方案 10 var 11 q:array[1..maxl]of sta... 阅读全文
posted @ 2012-05-23 13:23 翱翔的感觉 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 题目见<<算法艺术与信息学竞赛>>View Code 1 program jiami; 2 const 3 maxn=10; 4 type 5 sta=record 6 x,y:integer; 7 end; 8 9 var 10 map,m2,tar:array[1..maxn*2,1..maxn*2]of char; 11 q:array[1..maxn]of sta; 12 boo:array[1..maxn*maxn*4]of boolean; 13 che:array[1..maxn*2,1..... 阅读全文
posted @ 2012-05-20 16:03 翱翔的感觉 阅读(170) 评论(0) 推荐(0) 编辑
摘要: program bashuma;const dir:array[1..4,1..2]of integer=((1,0),(-1,0),(0,1),(0,-1)); maxl=1000;type sta=record kx,ky:integer; m:array[1..3,1..3]of integer; end;var tar,old,new:sta; i,j,head,tail,k:integer; q:array[1..maxl]of sta; gans:boolean;function gnew(k:integer):boo... 阅读全文
posted @ 2012-04-22 17:52 翱翔的感觉 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 源程序名 data.???(pas|c|bas)输入文件名 data.in输出文件名 data.out【问题描述】已知N个正整数:A1、A2、……、An。今要将它们分成M组(X1,X2,……,Xm),使得各组数据的数值和最平均,即各组的和与各组和的平均值的差的绝对值的和最小。公式如下:X=(X1+X2+……+Xm)/MY=|X1-X|+|X2-X|+……+|Xm-X|X是各组数据和的平均值,Xi为第i组数据的数值和。即求所有分法中Y值的最小值。【输入文件】program data;const maxn=100;var i,j,n,m:integer; sum:longint; ave,ans: 阅读全文
posted @ 2012-04-17 17:50 翱翔的感觉 阅读(166) 评论(0) 推荐(0) 编辑
摘要: n*n方阵中填*号,使得每行每列都有m个*(m<=n)共n*m个*。主要注意一下问题:1.开始s用integer定义 发现数据超了会出现201错误2.二位数组第一次这么用 这里的c[i,j] j 表示第i行j个数据的位置3.限制递归宽度时 注意为上一个的位置+1到剩下的最大活动范围,用n-(m-y)表示,其中m-y表示本行还需要放几个*,所以一定在本行留下至少这么多个位置。program filled;var s:longint; i,n,m:integer; b:array[1..100]of integer; c:array[-1..100,-1..100]of integer;p. 阅读全文
posted @ 2012-04-09 22:13 翱翔的感觉 阅读(7) 评论(0) 推荐(0) 编辑
摘要: program fillnum;const maxn=1000;var b:array[1..maxn]of boolean; s,n:integer; map:array[1..100,1..100]of integer;procedure play(x,y:integer);var i,j:integer;begin //find one if x=n+1 then begin inc(s); for i:=1 to n do begin for j:=1 to n d... 阅读全文
posted @ 2012-04-09 13:52 翱翔的感觉 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 野人和传教士各三人,小船只能载两人,要求野人的人数不能多于传教士。输出过河的方案program yeren;const c:array[1..5,1..2]of integer=((1,0),(0,1),(1,1),(2,0),(0,2));var a:array[1..100,1..2]of integer; function can(k:integer):boolean;//检验新产生的状态是否满足条件 var i:Longint; begin if (a[k,1]<0)or(a[k,1]>3)or(a[k,2]<0)or(a[k,2]>3)then exit(fa 阅读全文
posted @ 2012-04-08 16:26 翱翔的感觉 阅读(681) 评论(0) 推荐(0) 编辑
摘要: program langyangcai;var i,j:longint; a:array[1..100,1..4]of integer;function can(k:longint):boolean;var l:longint;begin can:=false; if ((a[k,2]=a[k,3])and(a[k,2]<>a[k,1]))or((a[k,3]=a[k,4])and(a[k,3]<>a[k,1]))then exit;/、是否违反过河规则 l:=k-2; while l>0 do//判断是否重复 begin i... 阅读全文
posted @ 2012-04-08 15:50 翱翔的感觉 阅读(465) 评论(0) 推荐(0) 编辑