题解:首先,这道题可以用位运算来表示每一行的状态,同八皇后的搜索方法,然后对于限制条件不相互攻击,则只需将新加入的一行左右移动与上一行相&,若是0则互不攻击,方案可行。对于每种方案,则用递推来统计,将前一排所有可以的情况全部加上即可。bit数组记录每个数字二进制位中1的个数,方便计算。if(chec...
分类:
其他好文 时间:
2014-07-21 09:35:58
阅读次数:
184
扩展欧几里得算法就是求: ax + by = gcd(a, b)的一组整数解(x, y)一、非递归的实现:首先看a = 60, b = 22的情况:表格左边是欧几里得算法,右边等式计算ax + by = gcd(a, b)的解a = 2 × b + 1616 = a - 2bb = 1× ...
分类:
其他好文 时间:
2014-07-21 09:35:19
阅读次数:
290
题解:首先,单点修改求区间和可以用树状数组实现,因为开平方很耗时间,所以在这个方面可以优化,我们知道,开平方开几次之后数字就会等于1 ,所以,用数组记录下一个应该开的数,每次直接跳到下一个不是1的数字进行开平方,至于这个数组,可以用并查集维护。#include #include #include u...
分类:
其他好文 时间:
2014-07-21 09:10:28
阅读次数:
224
题解:同BZOJ 3211 花神游历各国,需要注意的是需要开long long,还有左右节点需要注意一下。#include #include #include #include using namespace std;typedef long long LL;LL a[100005],c[10000...
分类:
其他好文 时间:
2014-07-20 21:37:34
阅读次数:
199
int gcd(int n,int m)//n>m
{
//最大公约数
int r;
while(m)
{
r = n%m;
n = m;
m = r;
}
return n;
}
int kgcd(int a,int b)
{
if(!a) return b;
if(!b) retu...
分类:
其他好文 时间:
2014-07-19 23:37:19
阅读次数:
309
刚学习的扩展欧几里得算法,刷个水题
求解 线性不定方程 和 模线性方程
求方程 ax+by=c 或 ax≡c (mod b) 的整数解
1、ax+by=gcd(a,b)的一个整数解:
void ex_gcd(int a,int b,int &d,int &x,int &y)//扩展欧几里得算法
{
if(!b){d=a;x=1;y=0;}
else {ex_gcd(...
分类:
其他好文 时间:
2014-07-19 18:26:00
阅读次数:
226
1 LL Ex_GCD(LL a,LL b,LL &x,LL& y) 2 { 3 if(b==0) 4 { 5 x=1; 6 y=0; 7 return a; 8 } 9 LL g=Ex_GCD(b,a%b,x,y);...
分类:
其他好文 时间:
2014-07-19 17:04:57
阅读次数:
249
UVA 11774 - Doom's Day
题目链接
题意:给定一个3^n*3^m的矩阵,要求每次按行优先取出,按列优先放回,问几次能回复原状
思路:没想到怎么推理,找规律答案是(n + m) / gcd(n, m),在topcoder上看到一个证明,如下:
We can associate at each cell a base 3-number, the log3(R...
分类:
其他好文 时间:
2014-07-19 14:06:19
阅读次数:
220
GCD SUMTime Limit:8000/4000MS (Java/Others)Memory Limit:128000/64000KB (Java/Others)SubmitStatusProblem Description给出N,M执行如下程序:long long ans = 0,ansx ...
分类:
其他好文 时间:
2014-07-19 09:15:30
阅读次数:
234
题目地址:http :// www . lydsy . com / JudgeOnline / problem . php ? id = 1010
题目大意:见原题。
算法分析:
设s[i]为c[i]的前缀和,f[i]表示第1个物品到第i个物品的最小代价。
易得DP方程为f[i]=min(f[j]+(s[i]-s[j]+i-j+1-l)^2)。...
分类:
其他好文 时间:
2014-07-18 18:06:29
阅读次数:
280