Gravatar
Go灬Fire
积分:3411
提交:1738 / 3778
后缀自动机真是劲啊

题目 1712 [POJ3415]公共子串
2017-03-08 21:05:40
Gravatar
sxysxy
积分:2485
提交:603 / 1120
mdzz f[u][0] 写成 f[i][0]调半小时》。。

Gravatar
kZime
积分:1101
提交:334 / 677
一A的01背包。。不知道自己是会背这种代码了还是真的理解了

Gravatar
wangbinghai
积分:7
提交:4 / 10
其实这是一个多源最短路的题目
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
int n,m;
int a[200][200];
int dx[] = {0,1,0,-1};
int dy[] = {1,0,-1,0};
queue<int>q,p;
void bfs(){
while(!q.empty()){
int x = q.front(),y = p.front();
q.pop();p.pop();
for(int i = 0; i < 4;i++){
int xx = x + dx[i],yy = y + dy[i];
if(xx >= 1 && xx <= n && yy >= 1&& yy <= m && a[xx][yy] != 0 ){
if(a[xx][yy] == -1){
a[xx][yy] = a[x][y] + 1;
q.push(xx);p.push(yy);
}
else{
if(a[xx][yy] > a[x][y] + 1){
a[xx][yy] = a[x][y] + 1;
q.push(xx);p.push(yy);
}
}
}
}
}
}
void input(){
scanf("%d%d", &n, &m);
memset(a,-1,sizeof(a));
for(int i = 1; i <= n; i++){
char s[200];
scanf("%s", s);
for(int j = 0; j < m; j++){
if(s[j] == '1'){
a[i][j+1] = 0;
q.push(i);p.push(j+1);
}
}
}
}
void output(){
for(int i = 1; i <= n; i++){
for(int j = 1; j <= m; j++)printf("%d ",a[i][j]);
printf("\n");
}
}
void solve(){
bfs();
}
int main(){
freopen("bit.in","r",stdin);
freopen("bit.out","w",stdout);
input();
solve();
output();
}

Gravatar
可以的.
积分:3018
提交:1155 / 2255
后缀自动机+链剖LCA强行作一发

题目 667 回文串 AAAAAAAA
2017-03-08 11:26:55
Gravatar
小字、小瓶子
积分:437
提交:175 / 311
递归完事儿。。。

题目 49 跳马问题 AAAAAAAAAA
2017-03-08 10:25:11
Gravatar
KZNS
积分:2672
提交:581 / 1231
w+和w-我也搞反了。。。。

Gravatar
HeHe
积分:1192
提交:426 / 866
回复 @冥焱 :
要把sum[i]初始化为1
你的只有把sum[0]初始化了

Gravatar
HeHe
积分:1192
提交:426 / 866
第一次文件名打错了

Gravatar
_Itachi
积分:4323
提交:1498 / 3922
回复 @AntiLeaf :
啊哦!好像假如你能够造出每次都让我删除根节点的数据,我的复杂度就渣了。。不过你事先不知道我的alpha是多少,除非捆绑评测然后每个点中加几个卡不同的alpha值的替罪羊的数据,否则也是卡不动的。

Gravatar
Go灬Fire
积分:3411
提交:1738 / 3778
[size=155]|[/size]

Gravatar
可以的.
积分:3018
提交:1155 / 2255
你们真是卡得一手好常。。。

Gravatar
AntiLeaf
积分:3390
提交:1526 / 4369
回复 @_Itachi :
谁告诉你替罪羊树能旋转了……
我怀疑你的删除复杂度是错的

Gravatar
YGOI_真神名曰驴蛋蛋
积分:1982
提交:671 / 1901
@5112
另外第 i 行输出第 i 种瓷砖的期望
【开自己2倍时限应该不犯法吧= =】

Gravatar
yourfather
积分:575
提交:170 / 376
%%%

题目 1913 AC自动机 AAAAAAA
2017-03-08 07:23:54
Gravatar
_Itachi
积分:4323
提交:1498 / 3922
回复 @半汪 :
我能说我替罪羊树是现学的,在做这道题之前只A过两遍普通平衡树,而且都是惰性删除的,强行YY勤勉删除再写出来真心很累啊!

Gravatar
半汪
积分:1974
提交:508 / 1308
回复 @_Itachi :
学Treap

Gravatar
YGOI_真神名曰驴蛋蛋
积分:1982
提交:671 / 1901
$$[f(x)-e^x]^2=\sum_{i=0}^Na_i^2x^{2i}+2\sum_{i=0}^{N-1}\sum_{j=i+1}^Na_ia_jx^{i+j}-2\sum_{i=0}^Na_ix^ie^x$$
$$(x^i)'=ix^{i-1}\Rightarrow\int_0^1x^i\mathrm{d}x=\frac{1}{i+1}1^{i+1}-\frac{1}{i+1}0^{i+1}=\frac{1}{i+1}$$
然后并没有想清楚 $x^ie^x$ 定积分怎么求,就开始手算小数据:
$$(x^ie^x)'=(ix^{i-1}+x^i)e^x$$
$$\Rightarrow [(x-1)e^x]'=xe^x$$
$$\Rightarrow [(x^2-2x+2)e^x]'=x^2e^x$$
$$\Rightarrow [(x^3-3x^2+6x-6)e^x]'=x^3e^x$$
这样归纳一下好像就推出来了:
$$(e^x\sum_{i=0}^n(-1)^iA_n^ix^{n-i})'=x^ne^x\Rightarrow\int_0^1x^ne^x\mathrm{d}x=e\sum_{i=0}^n(-1)^iA_n^i-(-1)^nn!$$
这么看来原式应该就等于
$$\sum_{i=0}^N\frac{1}{2i+1}a_i^2+2\sum_{i=0}^{N-1}\sum_{j=i+1}^N\frac{1}{i+j+1}a_ia_j-2\sum_{i=0}^N[e\sum_{j=0}^i(-1)^jA_i^j-(-1)^ii!]a_i$$
只有二次诶,那只要对每个 $a_i$ 令偏导为 $0$ 就行了,就能得到一个一次方程组,用高斯消元解方程组就做完了,可是 $a_i=\sum_{j=0}^\infty p_{ij}\cdot e^j$ 什么鬼??难道要把多项式放进去消元,这个是要炸的呀。看了下方程组发现系数矩阵 $A$ 的数都是有理数,那么解方程 $Ax=b$($x,b$ 为列向量)得到 $x=A^{-1}b$,而 $b$ 中的数都能表示成 $p_0+p_1e$ 的形式,所以答案 $x$ 也能表示成 $p_0+p_1e$ 的形式。
出题人真坑,明明答案是 $p_0+p_1$ 的形式,只有 $p_{i0},p_{i1}$ 是有用的,题面偏要写成 $\sum_{j=0}^\infty p_{ij}$ 误导别人存整个多项式。然后又只要输出有用的那两个数。坑爹!!
推导这里就开始写,写完之后测了下样例 $N=0$ 过了,$N=1$ 的WA了。开始怀疑算法有没错。或者是哪一步推导错了。好虚啊。

题目 1743 忠诚
2017-03-07 21:39:22
Gravatar
_Itachi
积分:4323
提交:1498 / 3922
写一颗勤勉删除+旋转的替罪羊是很痛苦的。。

Gravatar
rvalue
积分:715
提交:213 / 573
据说线段树结点中存指针与位运算求下标相比效果拔群(在某些题目中似乎能卡过树状数组)

题目 1266 [NOIP 2012]借教室
2017-03-07 21:35:26