摘要: 排序的同时求逆序数 C++ include include include using namespace std; const int maxn = 1e6 +5; int arr[maxn]; int cnt = 0; void merge_sort(int b, int e) { if(b = 阅读全文
posted @ 2018-06-11 16:29 asakuras 阅读(113) 评论(0) 推荐(0) 编辑
摘要: KMP C++ include include void get_next(char p,int next){ int pLen = strlen(p); next[0] = 1; int k = 1,j = 0; while(j 阅读全文
posted @ 2018-06-08 11:29 asakuras 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/contest/988/problem/D 题意:给n个互不相同的数,在里面选取一些数组成集合,满足集合内的数任意两两绝对值之差是2的幂,求这个集合能构成的最多元素个数并分别输出。 题解:可以证明这个集合最大是3。假设三个数a,b,c能构成这个集 阅读全文
posted @ 2018-06-08 11:00 asakuras 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/988/C 题意:给n个数列,若存在两个不一样的数列,两者各去掉一项后值一样那么输出YES,并且输出这两个数列的编号和对应项的序号 题解:使用map存储,键:每一个数列的和除去每一项,值:对应的编号和序号队( 阅读全文
posted @ 2018-06-07 17:54 asakuras 阅读(283) 评论(2) 推荐(0) 编辑
摘要: 有23个一元硬币摆在桌上,其中10个是正面朝上的,现在你被要求在不睁眼的情况(也无法用手分辨正反面,无法将硬币立起)下将23个硬币分成两堆,使得两堆中正面朝上的硬币个数一样多? 答案:取任意10个硬币为一堆,将其全部翻面,此时两堆硬币正面朝上的一样多 证明:设任取的10个硬币中正面朝上的个数为X,翻 阅读全文
posted @ 2018-05-08 11:00 asakuras 阅读(143) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/consciousman/article/details/51407514 https://blog.csdn.net/consciousman/article/details/52348439 阅读全文
posted @ 2018-03-25 15:29 asakuras 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003 题目大意:最大子段和,求连续的ai中和最大的 题目思路:这道题想明白了很简单,一个简单的动态规划。所有的子数列,可以按照“以a[i]为结尾”的规则分成n组 第一组为a[1], 第二组为a[1],a 阅读全文
posted @ 2018-03-20 23:37 asakuras 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/910/C 题目大意:将a~j分别赋值0~9,然后计算表达式的最小值 一道普通的模拟题,思路在于将a~j的权重计算清楚,然后排序分配0~9,同时注意一下前导零的问题。 include include incl 阅读全文
posted @ 2017-12-22 21:31 asakuras 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/problemset/problem/903/D 题目大意:给你n个数a1,a2,…,an,然后在1到n范围内求函数d(x,y)的和。 这道题可以这么想,就是先不考虑x,y的大小关系,直接认为d(x,y)= y x 记最后结果为sum,那么sum 阅读全文
posted @ 2017-12-21 10:46 asakuras 阅读(138) 评论(0) 推荐(0) 编辑