摘要: 题目大意 给定一个含有N个数的序列,要求你对一些数减掉或者加上某个值,使得序列变为非递减的,问你加减的值的总和最少是多少? 题解 一个很显然的结果就是,变化后的每一个值肯定是等于原来序列的某个值,因为只需要变为非递减的,所以对于某个数要么不变,要么变成左右附件的某个值。这样我们就可以根据前述条件得出 阅读全文
posted @ 2018-02-25 21:49 euzmin 阅读(212) 评论(0) 推荐(0)
摘要: 凑平方数 把0~9这10个数字,分成多个组,每个组恰好是一个平方数,这是能够办到的。 比如:0, 36, 5948721 再比如: 1098524736 1, 25, 6390784 0, 4, 289, 15376 等等... 注意,0可以作为独立的数字,但不能作为多位数字的开始。 分组时,必须用 阅读全文
posted @ 2018-02-25 18:28 euzmin 阅读(490) 评论(0) 推荐(0)
摘要: 题意: 题解: 1 #include<cstdio>//s=l/2+n-1; 2 #include<cmath> 3 #include<cstdlib> 4 int a,b,c,d,e,f; 5 int area(){ 6 return abs((a*d+c*f+b*e-a*f-b*c-d*e)/2 阅读全文
posted @ 2018-02-25 11:05 euzmin 阅读(935) 评论(0) 推荐(0)
摘要: 互质模板 1 #include <iostream> 2 using namespace std; 3 4 int Extended_Euclid(int a,int b,int &x,int &y) //扩展欧几里得算法 5 { 6 int d; 7 if(b==0) 8 { 9 x=1;y=0; 阅读全文
posted @ 2018-02-25 10:42 euzmin 阅读(314) 评论(0) 推荐(1)
摘要: 一、除法取模逆元 如果我们要通过一个前面取过模的式子递推出其他要取模的式子,而递推式里又存在除法 那么一个很尴尬的事情出现了,假如a[i-1]=100%31=7 a[i]=(a[i-1]/2)%31 a[i]=50%31=19 ,但我们现在只知道a[i-1]=7,如何计算出a[i]=19呢? a[i 阅读全文
posted @ 2018-02-25 10:26 euzmin 阅读(1048) 评论(0) 推荐(0)