NOIP2002 Luogu1032 字串變換

2021-08-20 05:46:22 字數 1060 閱讀 3233

problem

solution

codes

//思路就是對於每個狀態下的字串,列舉可以替換的部分替換作為下乙個新的狀態。

#include

#include

#include

#include

using

namespace

std;

int n = 1, flag;

string a, b, ai[1010], bi[1010];

queue

q;mapma;//map判重防mle

int main()

if(ma[t]>10)break;

//如果沒有這層迴圈的話,就只能找到第乙個子串,後面的會被忽略,如abaaaba abcdaba

for(int j = 0; j < t.size(); j++)}}

}if(flag)cout

<"\n";

else

cout

<<"no answer!\n";

return

0;}

#include

#include

#include

#include//set判重

#define maxn 1010

using

namespace

std;

string ai[maxn],bi[maxn];

struct node

};set

s;int ans;

int main()

if(t.st > 10)

for(int j = 0; j < t.str.size(); j++)}}

}//如果<10就因為找不到出來也是不成立的, 即ans沒有被賦過值的話

if(ans == 20 || ans == 0)cout

<<"no answer!\n";

else

cout

<"\n";

return

0;}

noip2002 矩形覆蓋

在平面上有 n 個點 n 50 每個點用一對整數座標表示。例如 當 n 4 時,4個點的座標分別為 p1 1,1 p2 2,2 p3 3,6 p4 0,7 如圖1。這些點可以用 k 個矩形 1 k 4 全部覆蓋,矩形的邊平行於座標軸。當 k 2 時,可用如圖2的兩個矩形 sl,s2 覆蓋,s1,s2...

NOip2002均分紙牌

題目描述 有 n 堆紙牌,編號分別為 1,2,n。每堆上有若干張,但紙牌總數必為 n 的倍數。可以在任一堆上取若於張紙牌,然後移動。移牌規則為 在編號為 1 堆上取的紙牌,只能移到編號為 2 的堆上 在編號為 n 的堆上取的紙牌,只能移到編號為 n 1 的堆上 其他堆上取的紙牌,可以移到相鄰左邊或右...

noip2002 均分紙牌

題目描述 有 n 堆紙牌,編號分別為 1,2,n。每堆上有若干張,但紙牌總數必為 n 的倍數。可以在任一堆上取若於張紙牌,然後移動。移牌規則為 在編號為 1 堆上取的紙牌,只能移到編號為 2 的堆上 在編號為 n 的堆上取的紙牌,只能移到編號為 n 1 的堆上 其他堆上取的紙牌,可以移到相鄰左邊或右...