poj入门水题10

刷题链接:poj.org

北大online题库


1.3650 The Seven Percent Solution

解释:URIs里面有些保留字符不能以原本的样子出现,只能用百分号加2个十六进制数表示,就是字符串替代的问题。

解法:直接用switch就好,用printf的注意输出的时候要2个%


3981 ,字符串替换,同上。


2.2941 Homogeneous Squares

解释:在一个N*N的矩阵中,任取N个行列并不相同的数字,如果每次取出这N个数的和都一样的话,就是同质的,反之就是不同质的。

解法:只要保证每个2*2的子矩阵的对角线之和相等的话就是同质的。


3.2940 Wine Trading in Gergovia

解释:Gergovia的人,有人买酒有人卖酒,ai<0表示卖了ai瓶酒,ai>0表示买了ai瓶酒。买卖酒需要运输,1瓶酒运距离1需要1个工作单位,如果有个an的序列,代表n个人买卖酒的情况,且这n个ai之和为0,问这些酒交易成功需要多少个工作单位。

解法:第一个数为a1,如果小于0,则至少需要a1个工作单位,若a2大于0且小于a1的绝对值,则还至少需要a1-a2个工作单位。同理可得,只要将每次求和的绝对值加在一起即可。

for(i=0;i<n;i++)
{
	temp+=a[i];
	sum+=abs(double(temp));
}


4.1045 Bode Plot

解释:公式:v1 = VS coswt and v2 = VRcos (wt + q ) , v2 = iR , i = C*d/dt (v1-v2) ,给出 Vs, R, C,求出Vr

解法:自己算,啦啦啦~


5.2719 Faulty Odometer

解释:有一个有问题的里程表,每次跑过3之后就直接跳过4,跑到了5,问,给出一个里程表上的数字,期望求出真正跑了多远

解法:每位的值和4比较,如果大于4则减1,如果小于4,则不减。然后求出每一位真实的数字。然后对每位数字求和,少跑了4这一位数字,所以是按照九进制求和而不是十进制。


6.2291 Rotten Ropes

解释:1根绳子能承受t的重量,2根这样的绳子就可以承受2t的重量,如果有3根绳子,分别能承受1,10,15 重量,把这三根绳子合在一起,最多能承受重量为3的物品,否则为1的那根就会断掉了,但是断掉之后就可以承受2*10=20的重量了。

给出一些绳子能承受的重量,问最多能承受多大的重量。

解法:将绳子能承受的重量排序,a[n-1]*1,a[n-2]*2..一直求和,若a[i]*(n-i-1)<a[i+1]*(n-i),则终止比较,输出a[i+1]*(n-i),


7.1401 Factorial

解释:定义Z(N)为阶乘N后面的0的个数

解法:0是怎么来的呢?2*5,10或者2的倍数*5的倍数以及10的倍数,因为5的倍数少于2的倍数,10也是5的倍数,所以只要看5的倍数有多少即可。同时25是5*5,所以是2个0。所以Z(N)=N/5+N/25+N/625...


8.1338 Ugly Numbers

解释:丑数就是那些只含有2,3,5这三个数的数字,特别的,1也算一个丑数

解法:打表法,打表和之前的稍微有些不同,a[0]=1,要设置3个变量,2,3,5各一个。num2,num3,num5,然后每个数*2,3,5,比较大小之后置数

for(i=2;i<=1500;i++)
	{
		u[i]=min(u[i2]*2,min(u[i3]*3,u[i5]*5));
		//printf("%d",min(i2*2,i3*3));
		if(u[i]==u[i2]*2)
			i2++;
		if(u[i]==u[i3]*3)
			i3++;
		if(u[i]==u[i5]*5)
			i5++;
	}

9.3913 Gnome Sequencing

解释:就是看序列是否是有序的,无论升序还是降序

解法:三个一行,很好比较哒~~~


10.3302 Subsequence

解释:判断s2或者s2的逆序列是否是s1的子序列。

解法:直接扫描s1,s2,按着顺序来扫描的话,如果s1和s2(或逆序)相等的长度等于s2的长度,则是子序列。
















  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值