HDU 5355 Cake 均勻分蛋糕

2021-07-05 01:11:38 字數 1561 閱讀 6635

題意:給出不同大小的n個蛋糕,大小分別為1..n,讓你分給m個人,看能否分均勻,即每個人蛋糕的總大小相等,若可以,輸出yes+方案,否則no;

資料範圍:樣例數小於1000,m小於10,n小於10w

解法:構造+搜尋,可以容易構造出按這個方向給蛋糕,可以使每個人的蛋糕大小相等:  1...m m..1,給n,n-1,n-2.....  最後可能有剩(需要拿回 2m 個,因為這多餘的幾個必定拼不成),進行搜尋,為了在有限時間內求解,需要類似 poj-1011 的方法優化。

#include#include#include#include#include#include#include#include#include#include#include#pragma comment(linker, "/stack:1024000000,1024000000")

template bool scanff(t &ret)

while(c=getchar(),c>='0'&&c<='9') ret+=(c-'0')*bit,bit/=10;

ret*=sgn;

return 1;

}#define inf 1073741823

#define llinf 4611686018427387903ll

#define pi acos(-1.0)

#define lth (th<<1)

#define rth (th<<1|1)

#define rep(i,a,b) for(ll i=a;i<=b;i++)

#define drep(i,a,b) for(ll i=a;i>=b;i--)

#define gson(i,root) for(int i=ptx[root];~i;i=ed[i].next)

#define tdata int testnum;scanff(testnum);for(int cas=1;cas<=testnum;cas++)

#define mem(x,val) memset(x,val,sizeof(x))

#define mkp(a,b) make_pair(a,b)

#define findx(x) lower_bound(b+1,b+1+bn,x)-b

#define pb(x) push_back(x)

using namespace std;

typedef long long ll;

typedef pairpii;

vectorvt[111];

ll len,last,n,m;

bool vis[111];

bool dfs(ll idx,ll r,ll need)

else}}

return false;

}ll p[111];//2*m個蛋糕進行分配時的位置

int main()

}ll sum=(n+1)*n/2;

len=sum/m;

mem(vis,0);

if(dfs(1,n,len));

printf("yes\n");

rep(i,1,m)

}}

wdcp公升級php版本到5 3,5 5

官網省級方法 wget sh php up53.sh 看到 php update is ok 提示 表示,順利完成 公升級辦法 預設的wdcp面板安裝,php版本是5.2.17,如果需要公升級php5.3或者是5.5則需要通過公升級的方式,這個方法相比較網上的其他方法能夠節省很多時間。a 公升級ph...

LeetCode 5355 T 秒後青蛙的位置

給你一棵由 n 個頂點組成的無向樹,頂點編號從 1 到 n。青蛙從 頂點 1 開始起跳。規則如下 在一秒內,青蛙從它所在的當前頂點跳到另乙個 未訪問 過的頂點 如果它們直接相連 青蛙無法跳回已經訪問過的頂點。如果青蛙可以跳到多個不同頂點,那麼它跳到其中任意乙個頂點上的機率都相同。如果青蛙不能跳到任何...

hdu1285 hdu4857 拓撲排序

一 原題內容 problem description 有n個比賽隊 1 n 500 編號依次為1,2,3,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2,用p1,p2表示,排名時p1在p2之前。現在...