bzoj2824 AHOI2012 鐵盤整理

2021-08-08 14:49:30 字數 1492 閱讀 6629

自己去看。。

還有呢看了下路牌,居然是dfs+剪枝tat

然後我就敲了乙個然後t了。。

大概是長這樣。。也算。。加了剪枝吧。。

#include

#include

#include

#include

#include

using

namespace

std;

const

int n=55;

int n;

int a[n];

int b[n];

int ans;

intabs (int x)

bool g[105][105];//是否相鄰

void dfs (int x,int y)//已經花了多少步 後面多少位已經ok了

if (y==n)

int tt=n-y;//哪些位是可以移動的

for (int u=2;u<=tt;u++)//到哪一位移動一下

}int main()

sort(b+1,b+1+n);

dfs(0,0);

printf("%d\n",ans);

return

0;}

然後看了下題解。。發現還有乙個大優化沒有加

就是我們知道每乙個操作最多可以使得一對不合法的相鄰順序變合法。。

於是就可以加可行性優化了

似乎跑了200ms+就過去了

可行性優化還是強啊

code:

#include

#include

#include

#include

#include

using

namespace

std;

const

int n=55;

int n;

int a[n];

int b[n];

int ans;

intabs (int x)

bool g[105][105];//是否相鄰

void dfs (int x,int y,int z)//已經花了多少步 後面多少位已經ok了 最少還要多少步

if (y==n)

int tt=n-y;//哪些位是可以移動的

for (int u=2;u<=tt;u++)//到哪一位移動一下

}int main()

sort(b+1,b+1+n);

for (int u=2;u<=n;u++) g[b[u]][b[u-1]]=g[b[u-1]][b[u]]=true;

int tot=0;

for (int u=1;uif (g[a[u]][a[u]+1]==false) tot++;

dfs(0,0,tot);

printf("%d\n",ans);

return

0;}

2824 AHOI2012 鐵盤整理

time limit 10 sec memory limit 128 mb submit 377 solved 202 submit status discuss 在訓練中,一些臂力訓練器材是少不了的,小龍在練習的時候發現舉重器械上的鐵盤放置的非常混亂,並沒有按照從輕到重的順序擺放,這樣非常不利於循...

bzoj 3875 Ahoi2014 騎士遊戲

故事背景 長期的宅男生活中,jyy又挖掘出了一款rpg遊戲。在這個遊戲中jyy會 扮演乙個英勇的騎士,用他手中的長劍去殺死入侵村莊的怪獸。問題描述 在這個遊戲中,jyy一共有兩種攻擊方式,一種是普通攻擊,一種是法術攻 擊。兩種攻擊方式都會消耗jyy一些體力。採用普通攻擊進攻怪獸並不能把怪獸徹底殺死,...

AHOI2006 bzoj1264 基因匹配

description 基因匹配 match 卡卡昨天晚上做夢夢見他和可可來到了另外乙個星球,這個星球上生物的dna序列由無數種鹼基排列而成 地球上只有4種 而更奇怪的是,組成dna序列的每一種鹼基在該序列中正好出現5次!這樣如果乙個dna序列有n種不同的鹼基構成,那麼它的長度一定是5n。卡卡醒來後...