随笔分类 -  usaco

摘要:题意 给定一个进制B,输出所有大于等于1小于等于300且它的平方用B进制表示时是回文数的数分析 模拟,写清楚进制转换和判断回文即可Accepted Code 1 { 2 ID: jessiel2; 3 PROG: palsquare 4 LANG: PASCAL 5 } 6 Program palsquare; 7 Const 8 Infile = 'palsquare.in'; 9 Outfile = 'palsquare.out';10 Var11 now,old:Ansistring;12 b,i:LOngint;13 z:Array[10..35]Of 阅读全文
posted @ 2013-06-04 23:05 Rinyo 阅读(183) 评论(0) 推荐(0)
摘要:题意 给出一个数和每个数字可对应字母,求这个数可以对应的单词中哪些在字典里 字典给出 输出单词 如果没有 输出NONE分析 因为每个数字可对应多个字母 我就把字典里所有单词都映射成数 再跟读进来的数进行比较...Accepted Code 1 { 2 ID: jessiel2; 3 PROG: namenum 4 LANG: PASCAL 5 } 6 Program namenum; 7 Const 8 Infile = 'namenum.in'; 9 Outfile = 'namenum.out';10 Dictionary = 'dict.txt&# 阅读全文
posted @ 2013-05-07 19:50 Rinyo 阅读(212) 评论(0) 推荐(0)
摘要:题意 给出一个n*n的原始矩阵图形,一个n*n的变换后矩阵图形,再给出7种变换法则,问是哪种变换分析 纯模拟,写的我心烦,其实我就该多锻炼锻炼这种题 话说翻了一下一年半前刚学编程的程序,当时把这道题看作神题啊,“多麻烦的模拟!”,然后照猫画虎写了个程序,才几十行- - 现在..呵呵了 比起有算法的东西 真是简单..不过我还磨叽了二十分钟写了不到200行还贡献了一次WA 至于为啥WA?泥煤又是没看清题..注意要输出最小的变换Accepted Code无视乱七八糟的输出吧 1 { 2 ID: jessiel2 3 PROG: transform 4 LANG: PASCAL 5... 阅读全文
posted @ 2013-05-06 20:58 Rinyo 阅读(196) 评论(0) 推荐(0)
摘要:题意 给出n个工作时间段 问连续最大空闲时间段和连续最大工作时间段分别是多少分析 按照每个时间段的起始排序,记录一下当前的s和t,如果按照循环,下一个时间段在当前t的后面,则更新空闲时间段和s,t 如果下一个时间段的起始在t之前,则更新t和工作时间段 第一次WA,没看明白题就写了,第二次WA,尼玛的快排写错了,第三次才ACAccepted Code 1 { 2 ID: jessiel2 3 PROG: milk2 4 LANG: PASCAL 5 } 6 Program milk2; 7 Const 8 Infile = 'milk2.in'; 9 Outfile = ' 阅读全文
posted @ 2013-05-06 20:52 Rinyo 阅读(291) 评论(0) 推荐(0)
摘要:题意 给你一个由r w b组成的字符串,这个串首位相接连成一个环 给出一个计算方法:选取这个环任意两个相邻元素的之间,由这个位置顺时针取连续相同元素,逆时针取连续相同元素,两个方向的元素可不同 求问能取到最大的数目 注:w可以被看作r,也可以被看作b分析 方法1:模拟 关于环的处理:将这个环任意一个位置断开成一条链,然后复制出一条一模一样的接在这条链的后面,即构造了一个2*n长度的链 模拟时注意w的问题,w元素的前后元素一致时,w元素后的元素才可计入(WA一次) 第二个问题,当一条链元素一样时,正反两次扫描会计算两次,注意扫过的元素不能再利用(WA第二次) 比如test... 阅读全文
posted @ 2013-05-05 13:44 Rinyo 阅读(219) 评论(0) 推荐(0)
摘要:题意:给出n个人,及每个人要送出去多少钱以及送出的名单,求最后的收入-支出。分析:因为给的钱也许不能整除要给的名单,所以自己可以留着tot & num这么多钱,再把要给钱的名单中的名字的钱数+tot / num,至于名字的查找,可以用strcmp解决。最后别忘了每个人要减去送给别人的钱,复杂度O(n3)。 1 #include<cstdio> 2 #include<cstring> 3 struct rec 4 { 5 char na[15]; 6 int money; 7 }a[15]; 8 int main() 9 {10 freopen("gif 阅读全文
posted @ 2012-11-15 22:27 Rinyo 阅读(230) 评论(0) 推荐(0)
摘要:题意:给出两个大写的英文串,规则:A代表1,B代表2......Z代表26,现在分别计算两个字符串,计算法则例如:ABC=1*2*3。如果两个字符串的得数mod 47相等,则输出GO,否则输出STAY。分析:充分利用ASCII码的对应关系,算每一个字母所代表的数即用s[i]-'A'+1即可,最后别忘了mod 47。 1 #include<cstdio> 2 #include<cstring> 3 4 int calc(char *s) 5 { 6 int len=strlen(s); 7 int ans=1; 8 for (int i=0;i<le 阅读全文
posted @ 2012-11-15 22:21 Rinyo 阅读(186) 评论(0) 推荐(0)
摘要:题意:给出一个数n,求出从1900~1900+n-1之中,在13号的周一、周二、.....、周日各有几天。分析:对于年月日有个计算公式,叫蔡勒公式,详见百度百科。这里没有用这个公式。先提前开个数组month记录每个月的天数备用,至于2月份,可以根据闰年计算法则:四年一闰,百年不闰,四百年一闰,在单独处理2月的情况。再开个数组week记录答案。用一个变量last表示当前是这个月的1号是第多少天,初始为1,则一上来+12表示这个月的13号,mod 7则能计算出此时为周几,计入答案。再根据是否为闰年的二月来把last加至下个月的一号。以此类推,两重循环(一重循环year,一重循环month)即可。注 阅读全文
posted @ 2012-11-15 06:15 Rinyo 阅读(377) 评论(0) 推荐(0)