Section 1.3 milk
摘要:标准的贪心,先将供应商按照价格的升序排序,然后按需购买价格低的牛奶就可以得到最小的总价。/*ID:yucept21LANG:C++TASK:milk*/#include<cstdio>#include<cstdlib>#include<cstring>typedef struct tt{ int price, amount;}T;int N, M;T milk[5005];int cmp( const void *_p, const void *_q){ T *p = (T *)_p; T *q = (T *)_q; return p->price -
阅读全文
posted @
2012-02-02 16:26
找回失去的
阅读(181)
推荐(0)
Section 1.2 dualpal
摘要:这道题与上面那道题不同,这道题要我们从S + 1开始找出 N个数,这N个数在2到10进制中的形式至少有两个回文数。我们只需依次判断,符合要求就输出即可。/*ID:yucept21LANG:C++TASK:dualpal*/#include<cstdio>#include<cstring>#include<cstdlib>const int MAXN = 50;int N, S;char s[MAXN];char B[] = "0123456789" ;bool ispal( char *s){ int len = strlen( s);
阅读全文
posted @
2012-01-16 17:29
找回失去的
阅读(140)
推荐(0)
Section 1.2 palsquare
摘要:这道题是要我们判断在B进制下,1<= n <= 300, n^2是否为回文数,如果是回文数的话就输出该数及其平方在B进制下的形式。因为进制 2 <= B <= 20,所以先定义一个一个进制数组 const char B[21] = "0123456789ABCDEFGHIJ";然后输入进制n,1->300求出其平方在n进制下的形式,判断是否为回文数,是的话再将数字在n进制下的形式求出。/*ID:yucept21LANG:C++TASK:palsquare*/#include<cstdio>#include<cstring>
阅读全文
posted @
2012-01-16 17:28
找回失去的
阅读(142)
推荐(0)
Section 1.2 namenum
摘要:这道题的题意给我们一个dict.txt, 里面按照字典序存入了近5000个可接受的牛的名字,然后输入一个编号,让我们输出所有对应的可接受名字,首先我用一个alpha数组将26个字母对应其对应的编号,定义两个字符串,一个用来存编号,一个用来从txt文件读入名字。比较的话,我们通过字符串来对应编号,而不是编号对应字符串,每次读入一个名字,我们就将翻译成编号,然后与输入的编号来比较,如果一致就输出名字,如果没有找到,就输出NONE。/*ID:yucept21LANG:C++TASK:namenum*/#include<cstdio>#include<cstring>#incl
阅读全文
posted @
2012-01-16 17:27
找回失去的
阅读(230)
推荐(0)
Section 1.2 transform
摘要:这道题要求找到一种操作方式对字符串数组a进行操作,使得其与b一致。一共有六种操作方式,首先定义三个数组,a,b,c,前两个数组是输入,然后c数组每次选择操作方式之前使其等于a,然后对c进行操作,这道题值得注意的是操作选择是从1到6,必须按照顺序来,进行每一种操作后, 将c与b做比较,如果一致,就输出当前操作的编号,如果找不到操作方式,那么就输出 7./*ID:yucept21LANG:C++TASK:transform*/#include<cstdio>#include<cstring>#include<cstdlib>const int N = 15;ch
阅读全文
posted @
2012-01-16 17:26
找回失去的
阅读(213)
推荐(0)
Section 1.2 milk2
摘要:这道题要计算的是最长的有牛被挤奶的时间和最长的没有牛被挤奶的时间。首先用结构体存储每头牛的起止时间。然后按照开始时间升序排序。定义一个cur的结构体表示当前工作的起止时间,t =cur.end - cur.begin;代表的是工作的时间,然后当milk[i].begin > cur.end时,一段连续的工作时间被终止了,则t=cur.begin-milk[i].end是一段没有工作的时间。每计算出一段时间就和当前的最大时间比较,然后更新最大时间。/*ID:yucept21LANG:C++TASK:milk2*/#include<cstdio>#include<cstri
阅读全文
posted @
2012-01-14 15:05
找回失去的
阅读(159)
推荐(0)
Section 1.1 beads
摘要:这道题要计算将项链切断,然后从两端收集的相同的颜色的珠子数,两端的颜色可以不同,但是同一端的必须一样。我先讲字符串复制了一遍加到原来的字符串后面,然后把两个同样的项链放在一块,从头开始用两个变量(变量)a,b记录自左方某点至目前为止可搜集到之两种颜色珠子数,取途中所出现a+b之最大值,遇颜色变换时再将b指定给a即可,w也可以直接计数。/*ID:yucept21LANG:C++TASK:beads*/#include<cstdio>#include<cstring>#include<cstdlib>int main(){ freopen( "bead
阅读全文
posted @
2012-01-14 15:04
找回失去的
阅读(160)
推荐(0)
Section 1.1 Friday
摘要:这道题是要计算从1900 到 1900 + N – 1年间的每个月的13号是星期五的频率,实际要求输出的是一个星期中每天出现的次数。首先确定的是平年还是闰年,然后用两个数组存储平年和闰年的每月的天数。明确一点就是从当前月到下一个的13号之间的天数就是当前月的天数,先确定上次13号是星期几,再加上当月的天数mod 7得到的就是下一次13号是星期几, 星期天则得到的数字是0,例如第一次1月13号是星期6,然后加上31对7 取余,得到下次是星期二。注意一点:到1900+N-1年时的最后一个月就不要加了,因为再加就是下一年了。最后循环求出结果即可。/*ID:yucept21LANG:C++TASK:f
阅读全文
posted @
2012-01-14 15:03
找回失去的
阅读(170)
推荐(0)
Section 1.1 gift1
摘要:这道题的题目要求是求每个人收到礼物的总价值和送出去礼物总价值的差值。关键点是每个人送出的礼物总价值和送给人数存在整除的关系,所以处理的时候要注意/和%的区别,然后用strcmp找到送或者收到礼物的人,在结构体数组相应的money加上或者减去相应的金额。/*ID:yucept21LANG:C++TASK:gift1*/#include<cstdio>#include<cstring>#include<cstdlib>int N;typedef struct p{ char na[15]; int ney;}G;G tt[15];void init(){ sca
阅读全文
posted @
2012-01-14 15:02
找回失去的
阅读(153)
推荐(0)
Section 1.1 ride
摘要:这道题是比较两个字符串根据A = 1,Z = 26这种关系来进行乘法运算得到的值a和bMod 47之后值的关系,相等输出“GO”,不相等输出“STAY”。/*ID:yucept21LANG:C++TASK:ride*/#include<cstdio>#include<cstring>#include<cstdlib>int main(){ freopen( "ride.in", "r", stdin); freopen( "ride.out", "w", stdout); cha
阅读全文
posted @
2012-01-14 15:01
找回失去的
阅读(166)
推荐(0)