USACO 1.3.1 Mixing Milk
这题是个纯贪心题,本来是打算使用快排的,想到考试时可能不允许使用快排,自己写又太麻烦了,所以我就懒得用快排了,题目的数据量也不是很大,直接使用数组进行排序就是!
当然没有什么明显的问题,一次AC,代码如下:
LANG: C
ID: yylogoo2
PROG: milk
/
#include <stdio.h>
unsigned milk[1001];
int main(void)
{
i[……]
这题是个纯贪心题,本来是打算使用快排的,想到考试时可能不允许使用快排,自己写又太麻烦了,所以我就懒得用快排了,题目的数据量也不是很大,直接使用数组进行排序就是!
当然没有什么明显的问题,一次AC,代码如下:
int main(void)
{
i[……]
本来应该是很简单的一个题目,因为昨天才写前面一题(USACO 1.2.4 Palindromic Squares),就是使用那里写的一些子函数即可AC,但是因为现在是以学习为目的,所以自然是重写一次,但是重写同样的两个函数,却出现了不应该有的错误,具体错误如下:
这题硬搜就是,不过在提交前找到两个mistack:
这题我用的方法就是将dict.txt中的每一个字符串读出来,并判断是否满足输入的那个数字,如果满足输出就是。
我还有另外一个算法,就是首先根据输入的数字来确定范围,然后逐步缩小,最后确定到个数,但是很快就发现这是(我)无法实现的高难度算法。
再一个,我上面的那个算法要注意的是数的长度,最长是12位的数字!int存不进,必须要用long long!
代码如下:
这题没什么别的巧,就是硬搜,我犯的唯一一个错误就是使用了strcmp来进行判断,但是又没有给字符串设置结尾标识’\0’,幸运的是我在提交前查出来了,所以还是一次性提交成功,哈哈 !代码如下:
这一次刷题目纯粹是为了Noip的复赛,因为不知道Noip复赛是否能够使用qsort函数,所以就只能自己写了,在函数实现方面出现了不少错误,原计划时提交一次就AC的,但是却提交了4次,下面先贴出思路,再贴出具体的错误。
现将程序按照开始的时间进行一次排序,然后对排序后的数组进行一次迭代(far[i]),用一个now结构记录当前最长连续的开始时间和结束时间,如果far[i]的结束时间小于等于now的开始时间,那么now的开始时间不变,因为是排过续得了,但是结束时间就可能要更新了,如果far[i]的结束时间大于no[……]
这一题以前我就有疑问,为什么代码一定是:
这一个题目着实考察程序员的其他能力,时间方面我的能力真的很差,总是能把日期记错,把时间弄反,庆幸的是,我还是会看闹钟的,也不知道现在还有没有不会看的人,哈哈。
代码实现如下:
这个题目唯一要注意的就是被除数不为0的问题,别的的话就是别太粗心就是,代码如下:
这一题的话,觉得我的代码函数独立的不错,因为题目毕竟简单,所以也就这么写吧:
int get_num(char ch)
{
return ch - [……]