暴力搜索。。表示写的有点挫= =。时间花的好多。。一共有九种转换的方法,由于转换四次的话又会转换回到初始状态。所以枚举每个方法转换[0,3]次,然后再写两个函数判断旋转的过程。。记得回溯的时候需要将状态回到上一层。

#include <iostream>
#include <c[......]

继续阅读

这题要判断给出数字是否能构成几个数能满足题中所规定的式子要求。。一开始我想着是怎么通过这些数字来枚举每一行的数。。发现太麻烦了,而且复杂度很高。。后来发现前两个数的位数都是确定的,一个三位数和一个两位数,那我们就可以枚举[100,999]和[10,99】之间的数,然后通过模拟运算判断算出的答案是否是[……]

继续阅读

求给定字符串中最长的回文串什么,要求输出的是原来文章中的字符串。我们可以将字符串预处理,删除掉多余的字符,并记录每个字符的位置

然后开始枚举回文串。从第i个字符开始,分别判断(i-1,i+1)和(i,i+1)开始的字符串向两边不断的延伸。。记录位置即可

#include <cstdio[......]

继续阅读

贪心。假设每个牛都有一块木板,则长度为lenmax-lenmin。但是现在我们只要m块。所以我们要尽可能的减去最长的空隙,那么剩下来的才会是

最小的长度/所以首先按照牛棚之间的间隙排序,然后累加相减就可以了。。

#include <iostream>
#include <[......]

继续阅读

给出一个数字,问是否能根据规则匹配字典中一个字符串。。如果我们按照每一位来枚举每一种可能的话,那样可能就会超时。。

因为字典中最多只有5000个字符串,所以我们可以枚举字典中的字符串将其按照规则转换成数字,判断是否跟输入的相等就可以了。

#include <iostream>[......]

继续阅读

这题有点贪心的思想,将有交集的区间合并,然后求最长连续时间和最长不连续时间就可以了。。

我们先将区间按照起始时间从小到大的时间排序,假设(a,b)和(c,d),如果c在(a,b)内,则区间长度可以更新为(a,max(b,d)).如果不在(a,b)区间,

则c-b为不连续时间,并一直往下更[……]

继续阅读

因为这题可以从不同的地方把项链截断,然后向两边开始找相同的珠子。。所以我们可以想到可以把三串项链合并,然后枚举中间一串中截断的位置,向前向后分别找。。记录个数就可以了。。

#include <cstdio>
#include <cstring>
#include <[......]

继续阅读

前言:刷了几个月,快把我们oj上的usaco刷完了- -,还有几题还没有想出来,唉。。好多题也都是看了报告才做出来的。。现在我对这一页的题做个总结。有什么错误的地方希望以后看得人指出。。仅供借鉴。(题号是我们oj从2300开始,我就不发题目和链接了。。:)

 

这一题很早之前做[……]

继续阅读