USACO
文章平均质量分 66
Gavin_dinggengjia
这个作者很懒,什么都没留下…
展开
-
USACO 1.1.1 Your Ride Is Here (ride)
输入两个大写(upper case)字符串计算它们的相似性。主要在于将每个字符转换成相应的数字("A" is 1 and "Z" is 26)。根据ASCII字符表,字符‘@’在'A'之前,故将任一大写字母减去‘@’可得对应的数字。/* ID: gengjia1 LANG: C TASK: ride */ #include #include int main(void) { FILE *fin = fopen ("ride.in", "r"); FILE *fout = fopen原创 2010-12-17 18:26:00 · 838 阅读 · 0 评论 -
USACO 1.2.4 Palindromic Squares(palsquare)
<br />1、唯一知识点:进制转换<br />int 位数=0; while(j不为零) { b[位数]=j mod 进制 ; j = j / 进制; 位数=位数+1; } <br />2、思路:穷举[1,300]所有平方数,转进制,判断是否回文数。注意原数逆序输出,回文数不需要。<br />/* ID: gengjia1 LANG: C TASK: palsquare */ #include <stdio.h> #include <stdlib.h>原创 2011-03-23 15:03:00 · 934 阅读 · 0 评论 -
USACO 1.3.3 Calf Flac (calfflac)
<br />1、比较愚蠢的暴力搜索:两个指针分别从从第一个和最后一个开始,循环往中间移动,判断两个指针之间的字符串是否是回文数。重复搜索过多,导致最后一个测试数据超时:(<br />/* ID: gengjia1 LANG: C TASK: calfflac */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <ctype.h> //#define NDEBUG #include <assert.h原创 2011-03-25 14:25:00 · 1324 阅读 · 0 评论 -
USACO 1.3.2 Barn Repair (barn1)
<br />1、贪心算法:先用一块木板盖住牛棚,然后,每次从盖住的范围内选一个最大的空隙,以空隙为界将木板分成两块,重复直到分成m块或没有空隙。<br />/* ID: gengjia1 LANG: C TASK: barn1 */ #include <stdio.h> #include <stdlib.h> #include <string.h> //#define NDEBUG #include <assert.h> #define MAX_STALL 200 int M, S,原创 2011-03-24 19:38:00 · 909 阅读 · 0 评论 -
USACO 1.3.1 Mixing Milk (milk)
<br />1、贪心算法<br />2、优化解:读入数据时将相同价格合并,计算时不需排序。<br />/* ID: gengjia1 LANG: C TASK: milk */ #include <stdio.h> #include <stdlib.h> //#define NDEBUG #include <assert.h> int N, M; struct FARMER{ int price; int amount; }; int farmercmp(const void原创 2011-03-23 20:52:00 · 796 阅读 · 0 评论 -
USACO 1.2.3 Name That Number(namenum)
<br />1、逐个读取dict.txt中的单词,将其转换成对应的数字,判断与输入是否相等。<br />2、优化:判断单词长度是否相等。<br />/* ID: gengjia1 LANG: C TASK: namenum */ #include <stdio.h> #include <stdlib.h> #include <string.h> //#define NDEBUG #include <assert.h> const char alpha[26] = {'2','2','2'原创 2011-03-22 20:18:00 · 1131 阅读 · 0 评论 -
USACO 1.2.2 Transformations(transform)
<br />1、为什么MAX等于10以下数据在我的机器上结果正确,而提交通不过?换成11就可以。有谁知道了麻烦留言告诉一声。:)<br />10 <br />@--------@ <br />---------- <br />---------- <br />---------- <br />---------- <br />---------- <br />---------- <br />---------- <br />---------- <br />---------- <br原创 2011-03-22 14:51:00 · 787 阅读 · 0 评论 -
USACO 1.2.1 Milking Cows(milk2)
1、按照开始时间升序排序(快排),然后从左到右扫一遍,复杂度O(nlogn+n)/* ID: gengjia1 LANG: C TASK: milk2 */ #include #include #include #include //////////////////////// 快速排序 ////////////////////////// int partition(int t[][2], int low, int high) { int pivotkey = t原创 2011-03-21 16:01:00 · 1053 阅读 · 0 评论 -
USACO 1.1.4 Broken Necklace(beads)
1、串联两条链解开环形2、暴力搜索/* ID: gengjia1 LANG: C TASK: beads */ #include #include #include #include int main(void) { FILE *fin = fopen ("beads.in", "r"); FILE *fout = fopen ("beads.out", "w"); int N, n = 0; char *s = NULL, *st = NULL; in原创 2011-03-21 13:59:00 · 824 阅读 · 0 评论 -
USACO 1.1.3 Friday the Thirteenth (friday)
<br /> 判断闰年:(y%4==0 && y%100!=0) || (y%400==0)<br /><br /> 没用算法,一个个累计,还可改进。<br /> <br />/* ID: gengjia1 LANG: C TASK: friday */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <assert.h> enum week{Sat, Sun, Mon, T原创 2010-12-17 18:57:00 · 915 阅读 · 0 评论 -
USACO 1.1.2 Greedy Gift Givers (gift1)
容易忽略除数不能为零这个条件!/* ID: gengjia1 LANG: C TASK: gift1 */ #include #include #include #include int fine_name(char *tname, char pname[10][15], int NP) { int i; for(i = 0; i原创 2010-12-17 18:50:00 · 1320 阅读 · 0 评论 -
USACO 1.2.5 Dual Palindromes (dualpal)
<br />1、从S开始枚举每个十进制数,判断其对应的B进制是否回文数。<br />/* ID: gengjia1 LANG: C TASK: dualpal */ #include <stdio.h> #include <stdlib.h> //#define NDEBUG #include <assert.h> int N, S; const char *num = "0123456789"; int main(void) { FILE *fin = fopen ("dualp原创 2011-03-23 16:31:00 · 875 阅读 · 0 评论