题意:
输入一个数n,求n的一个排列,要求这个排序的任意一个子序列都不能是等差数列。
思路:
想了很久,但是除了枚举以外还是没想到其它的思路,枚举是一定会超时的;到网上看了别人的解题报告
才知道应该用分治的方法做。
分治的思想:考虑一个等差数列,我们把其奇数项,偶数项都提取出来;显然这两个序类内部还是等差数列,但是
它们之间的元素就不可能形成等差数列了;然后我们可...
分类:
其他好文 时间:
2014-11-29 16:08:55
阅读次数:
148
基本公式:末项=首项+(项数-1)×公差项数=(末项-首项)÷公差+1首项=末项-(项数-1)×公差和=(首项+末项)×项数÷2末项:最后一位数首项:第一位数项数:一共有几位数和:求一共数的总和
分类:
其他好文 时间:
2014-11-27 12:33:47
阅读次数:
153
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2817解题思路:arithmetic or geometric sequences 是等差数列和等比数列的意思,即令输入的第一个数为a(1),那么对于等差数列 a(k)=a(1)+(k-1)*d,即只需要...
分类:
其他好文 时间:
2014-11-22 18:44:27
阅读次数:
308
题目的大意就是求等差数列对应的Fibonacci数值的和,容易知道Fibonacci对应的矩阵为[1,1,1,0],因为题目中f[0]=0,f[1]=1,所以推出最后结果f[n]=(A^n-1).a,所以 f(g(i))= f(k*i+b)= (A^(k*i+b-1)).a,i从 0取到 n-1.....
分类:
其他好文 时间:
2014-11-21 10:30:05
阅读次数:
161
设 $\sed{a_k}_{k=1}^n$ 为等差数列, 则 $$\bex a_1+\cdots+a_n=\frac{n(a_1+a_n)}{2}. \eex$$ Ref. [Proof Without Words: Partial Sums of an Arithmetic Sequence, T...
分类:
其他好文 时间:
2014-11-19 12:04:39
阅读次数:
220
题意:
有两种操作1,2
1:询问 x,y区间能与p互质的数的和
2:将x改成p
一开始给N,初始是1~N个数
思路:
我们在求不互质的数有多少个的时候 其实就可以用等差数列求和求出这些数的和
那么我们到时候直接求一下就好了
然后因为这里的操作次数很少 所以我们可以标记一下哪些位置被修改过
然后在1操作的时候 特判一下这些位置
代码:
#include"cstdlib"
#i...
分类:
其他好文 时间:
2014-11-07 20:54:09
阅读次数:
312
复习dp,做了一系列的等差数列,突然发现第一个和第二个是穷举的。。。1006:题目描述Description给定n(1#include#includeusing namespace std;int a[101]={0};int main(){ int sum,ans=0,n,i,j,k,ch,la;...
分类:
其他好文 时间:
2014-11-05 18:51:57
阅读次数:
182
题目大意:给出一个等差数列,问这个等差数列的第n个素数是什么。
思路:这题主要考如何筛素数,线性筛。详见代码。
CODE:
#include
#include
#include
#include
#define MAX 1000010
using namespace std;
int prime[MAX],primes;
bool notp[MAX];
int a...
分类:
其他好文 时间:
2014-10-31 12:02:10
阅读次数:
199
题目链接:uva 12436 12436
- Rip Van Winkle's Code
题目大意:四种操作,操作见题目。
解题思路:即用线段树维护一个等差数列,因为一个等差加上一个等差还是一个等差数列,所以对于每个节点记录区
间左端的值,也就是首项,以及公差即可。因为还有一个S操作,所以要开一个标记记录区间值是否相同。
#include
#include
#inclu...
UVA 12436 - Rip Van Winkle's Code
题目链接
题意:区间修改一个添加等差数列,一个把区间设为某个值,然后询问区间和
思路:关键在于等差数列的地方,线段树的每个结点添加一个首项和公差,由于等差数列加上一个等差数列还是一个等差数列,利用这个性质就可以进行维护了,注意set操作会覆盖掉等差数列的操作
代码:
#include
#includ...