跳至正文

USACO 1.3.1 Mixing Milk

  • OI路程

  这题是个纯贪心题,本来是打算使用快排的,想到考试时可能不允许使用快排,自己写又太麻烦了,所以我就懒得用快排了,题目的数据量也不是很大,直接使用数组进行排序就是!
  当然没有什么明显的问题,一次AC,代码如下:

/
LANG: C
ID: yylogoo2
PROG: milk
/
#include <stdio.h>
unsigned milk[1001];

int main(void)
{
        i[……]

继续阅读

USACO 1.2.5 Dual Palindromes

  • OI路程

  本来应该是很简单的一个题目,因为昨天才写前面一题(USACO 1.2.4 Palindromic Squares),就是使用那里写的一些子函数即可AC,但是因为现在是以学习为目的,所以自然是重写一次,但是重写同样的两个函数,却出现了不应该有的错误,具体错误如下:

  1、在循环之后忘记更改循环变量了,就是说比如:for(i = 0; i <= 10; / 相当于这里没写 / ),自然循环就无法结束了!
  2、在数组里面直接使用长度作为下表,又比如:char str[10] = "12345&quo[……]

继续阅读

USACO 1.2.4 Palindromic Squares

  • OI路程

  这题硬搜就是,不过在提交前找到两个mistack:

  1、没审清楚题目,题目只要求平方是回文数,而没有要求那个数自身也是个回文数,我以为那个数自身也是回文数。
  2、在转换进制的时候,犯了一个超级低级的错误,把进制顺着使用了,也就是说比如13的二进制是:1101,而我的程序做出来就是1011,弄翻了!当然,很快就改好了,提交,一次性AC!
/
LANG:
C
ID: yylogoo1
PROG:
palsquare
/
#include <stdio.h>
#define MAP
"0123456789[……]

继续阅读

USACO 1.2.3 Name That Number

  • OI路程

  这题我用的方法就是将dict.txt中的每一个字符串读出来,并判断是否满足输入的那个数字,如果满足输出就是。
  我还有另外一个算法,就是首先根据输入的数字来确定范围,然后逐步缩小,最后确定到个数,但是很快就发现这是(我)无法实现的高难度算法。
  再一个,我上面的那个算法要注意的是数的长度,最长是12位的数字!int存不进,必须要用long long!
  代码如下:

/
LANG: C
ID: yylogoo1
PROG: namenum
/
#include <stdio.h>
#include&nbs[……]

继续阅读

USACO 1.2.2 Transformations

  • OI路程

  这题没什么别的巧,就是硬搜,我犯的唯一一个错误就是使用了strcmp来进行判断,但是又没有给字符串设置结尾标识’\0’,幸运的是我在提交前查出来了,所以还是一次性提交成功,哈哈 !代码如下:

/
LANG:
C
ID: logoo2
PROG:
transform
/
#include <stdio.h>
#include
<string.h>
typedef struct{
        char ma[……]

继续阅读

USACO 1.2.1 Milking Cows

  • OI路程

  这一次刷题目纯粹是为了Noip的复赛,因为不知道Noip复赛是否能够使用qsort函数,所以就只能自己写了,在函数实现方面出现了不少错误,原计划时提交一次就AC的,但是却提交了4次,下面先贴出思路,再贴出具体的错误。
  现将程序按照开始的时间进行一次排序,然后对排序后的数组进行一次迭代(far[i]),用一个now结构记录当前最长连续的开始时间和结束时间,如果far[i]的结束时间小于等于now的开始时间,那么now的开始时间不变,因为是排过续得了,但是结束时间就可能要更新了,如果far[i]的结束时间大于no[……]

继续阅读

USACO 1.1.4 Broken Necklace

  • OI路程

  这一题以前我就有疑问,为什么代码一定是:

a = b – w;
b = w + 1;
  而不能是:
a = b;
b = 1;
  今天终于是把它给想通了,理由如下:
  这里之所以要写成a = b – w, b = w + 1 而不是a = b, b = 1 的原因我终于是找到了.原因如下:
  假设: 此时 b = 2, w = 1 则执行
  a = b, b = 1 之后的
  1.a = 2, b = 1
  而下一次就又进入这里,
  2.a = 1, b = 1
  但是不是有更好的分配方法么:

  1.a = b – w[……]

继续阅读

USACO 1.1.3 Friday the Thirteenth

  • OI路程

  这一个题目着实考察程序员的其他能力,时间方面我的能力真的很差,总是能把日期记错,把时间弄反,庆幸的是,我还是会看闹钟的,也不知道现在还有没有不会看的人,哈哈。
  代码实现如下:

/
LANG: C
ID: logoo2
PROG: friday
/
#include <stdio.h>
int day[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, [……]

继续阅读

USACO 1.1.2 Greedy Gift Givers

  • OI路程

  这个题目唯一要注意的就是被除数不为0的问题,别的的话就是别太粗心就是,代码如下:

/
LANG: C
ID: logoo2
PROG: gift1
/
#include <stdio.h>
#include <string.h>
struct peo{
        char name[15];
       &nbs[……]

继续阅读

USACO 1.1.1 Your Ride Is Here

  • OI路程

  这一题的话,觉得我的代码函数独立的不错,因为题目毕竟简单,所以也就这么写吧:

/
LANG:C
ID:zqynux2
PROG: ride
/
#include <stdio.h>
#include <string.h>
typedef char string[7];

int get_num(char ch)
{
        return ch -&nbsp[……]

继续阅读