USACO 1.3.4 Prime Cryptarithm
我没找到什么很巧的方法,纯暴力搜索:
枚举100~999,10~99然后再分别进行判断,是各个数值否是在范围内,然后是否是输入输入的集合,如果都是ans递增,代码就是这样,犯了两个错误!
1、在比较是否属于全集时,我是判断如果都不属于才算不属于,即用的“与”进行连接,应用“或”连接,在有一个[……]
我没找到什么很巧的方法,纯暴力搜索:
枚举100~999,10~99然后再分别进行判断,是各个数值否是在范围内,然后是否是输入输入的集合,如果都是ans递增,代码就是这样,犯了两个错误!
1、在比较是否属于全集时,我是判断如果都不属于才算不属于,即用的“与”进行连接,应用“或”连接,在有一个[……]
这一题是USACO所有题目中我最自豪的一个题目,首先因为大部分人的代码都是在小数后一位上,而我这个算法是O(n)的,所以非常的快。又因为这是我自己想出来的,而且思维角度比较独特,所以我甚为自豪!
但是我这个思路很难表达清晰。
想把它单独提出来作为一篇文章(http://zqynux.blog[……]
这一题想了好久才想起来以前是怎么做的,直接使用的贪心,首先假设只有一块木板,自然而然是从最小的到最大的全部盖上,此时假设值为ans,那么如果是两块木板,那两块木板之间隔的距离必定是整个牛棚中距离最远的两个牛之间的距离,也就是说答案等于:只有一块木板的长度减去一个最长间隔:ans-max(dis)[……]
这题是个纯贪心题,本来是打算使用快排的,想到考试时可能不允许使用快排,自己写又太麻烦了,所以我就懒得用快排了,题目的数据量也不是很大,直接使用数组进行排序就是!
当然没有什么明显的问题,一次AC,代码如下:
本来应该是很简单的一个题目,因为昨天才写前面一题(USACO 1.2.4 Palindromic Squares),就是使用那里写的一些子函数即可AC,但是因为现在是以学习为目的,所以自然是重写一次,但是重写同样的两个函数,却出现了不应该有的错误,具体错误如下:
这题硬搜就是,不过在提交前找到两个mistack:
这题我用的方法就是将dict.txt中的每一个字符串读出来,并判断是否满足输入的那个数字,如果满足输出就是。
我还有另外一个算法,就是首先根据输入的数字来确定范围,然后逐步缩小,最后确定到个数,但是很快就发现这是(我)无法实现的高难度算法。
再一个,我上面的那个算法要注意的是数的长度,最长是[……]
这题没什么别的巧,就是硬搜,我犯的唯一一个错误就是使用了strcmp来进行判断,但是又没有给字符串设置结尾标识’\0’,幸运的是我在提交前查出来了,所以还是一次性提交成功,哈哈 !代码如下:
这一次刷题目纯粹是为了Noip的复赛,因为不知道Noip复赛是否能够使用qsort函数,所以就只能自己写了,在函数实现方面出现了不少错误,原计划时提交一次就AC的,但是却提交了4次,下面先贴出思路,再贴出具体的错误。
现将程序按照开始的时间进行一次排序,然后对排序后的数组进行一次迭代(far[[……]