摘要:
题目给出一系列数字,然后问哪个数字是从小到大排在第几的,重复出现算第一个。数据范围为10000,不大,完全可以暴力,sort不会超时。但是由于以前做比赛时也遇到这种题目,没注意看数据范围,然后暴力被hack了。之后就学会了计数排序了。这题也用计数排序做,挺快的,代码也不长。代码:#include #include const int maxn = 10001; int num[maxn], s[maxn]; int main() { int n, q, tmp, m = 0, cnt = 0; while (scanf("%d%d", &n, &q) &am 阅读全文
摘要:
题目要求写一个直接用比较排序的pascal程序,挺有趣的一题。我看题目数据范围就到8,本来以为贪个小便宜,用switch输出。然后发现比较次数是阶乘级别的,8的阶乘也是挺大的,恐怕会交不上去。于是改用回溯法。其实他比较时就是把后面的数一个一个向前比较,然后插到那位前面,继续回溯。else的处理比较麻烦而已,改了好久终于跟标准答案一样了。缩进没有处理,提交上去就ac了,看来oj没有检查缩进呢,如果有检查就还得处理一下了。代码:(未进行缩进处理)#include const int maxn = 10; int n, arr[maxn]; void insert_sort(int p, in... 阅读全文