【問題描述】
小 m 在做數學作業的時候遇到了乙個有趣的問題:有乙個長度為 n 的數字
串 s,小 m 需要在數字之間填入若干個「+」和恰好乙個「=」,使其成為乙個
合法的等式。如對於 s=「2349」,可以通過新增 2個「+」和 1 個「=」成為
「2+3+4=9」。
小 m 發現有些數字串是無法通過新增符號成為乙個合法的等式的,她想知
道對於每乙個給定的數字串 s,是否可以通過新增符號使之成為乙個合法的等
式(允許前導 0)?
【輸入】
第一行為資料組數 t,表示有 t組輸入資料。
接下來 t行每行乙個數字串 s。
【輸出】
對於每組資料,若 s可以成為合法的等式,輸出「yes」,否則輸出
「no」,以單行回車隔開。
【輸入輸出樣例】
42349
233233
122323
2344322322
yesyes
noyes
【輸入輸出樣例解釋】
2+3+4=9
233=233
2+34=4+3+2+2+3+22
【資料範圍】
對於 50%的資料:1 ≤ t ≤ 3,1 ≤ n ≤ 4。
對於 100%的資料:1 ≤ t ≤ 5,1 ≤ n ≤ 10。
本題純正dfs,**並不是很難。
用狀態壓縮更優,但直接dfs也能過。
#include#include#include
#include
using
namespace
std;
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
#define mp make_pair
#define pb push_back
#define xx first
#define yy secondtypedef
long
long
ll;typedef pair
pii;
inline
intread()
const
int maxn=10
;char
s[maxn];
intn;
intsolve()
left+=cur;cur=0
; rep(i,x+1
,n)
right+=cur;cur=0
;
if(left==right) return1;}}
return0;
}int
main()
PAT1 馬虎算式(暴力 dfs)
小明是個急性子,上小學的時候經常把老師寫在黑板上的題目抄錯了。有一次,老師出的題目是 36 x 495 他卻給抄成了 396 x 45 但結果卻很戲劇性,他的答案竟然是對的!因為 36 495 396 45 17820 類似這樣的巧合情況可能還有很多,比如 27 594 297 54 假設 a b ...
3438 小M的作物
time limit 10 sec memory limit 256 mb submit 1078 solved 468 submit status discuss 小m在mc裡開闢了兩塊巨大的耕地a和b 你可以認為容量是無窮 現在,小p有n中作物的種子,每種作物的種子 有1個 就是可以種一棵作物 ...
題解 小M的作物
題目戳我 text 這題要求最大收穫,可以轉化為所有可能的收益減去最小割。單個點很好連邊 s to pos to t 問題在於如何處理組合的點。觀察到,乙個組合要不然全部都劃分到某乙個集合,要不然不做貢獻。注意到組合裡面的點是不能拆開的。所以我們建立乙個組合虛點,它連線所有組合內的點,邊權是 inf...