[網路流24題]魔術球問題(簡化版
★★☆ 輸入檔案:balla.in 輸出檔案:balla.out 簡單對比
時間限制:1 s 記憶體限制:128 mb
問題描述:
假設有n根柱子,現要按下述規則在這n根柱子中依次放入編號為 1,2,3,4……的球。
(1)每次只能在某根柱子的最上面放球。
(2)在同一根柱子中,任何2個相鄰球的編號之和為完全平方數。
試設計乙個演算法,計算出在n根柱子上最多能放多少個球。例如,在4 根柱子上最多可
放11個球。
´程式設計任務:
對於給定的n,計算在 n根柱子上最多能放多少個球。
´資料輸入:
檔案第1 行有 1個正整數n,表示柱子數。
´結果輸出:
檔案的第一行是球數。
資料規模
n<=60 保證答案小於1600
輸入檔案示例
4 輸出檔案示例
11 方案如下
1 8
2 7 9
3 6 10
4 5 11
每一行表示乙個柱子上的球
【分析】
重要定理:最小路徑覆蓋=節點數-最大匹配
…於是拆點為二分圖…blabla…
這破題想了老長時間orz
【**】
//cogs 魔術球問題(簡化版)
#include
#include
#include
#include
#include
#define inf 1e9+7
#define p(i,j) (i-1)*n+j
#define fo(i,j,k) for(i=j;i<=k;i++)
using
namespace
std;
queue
q;const
int mxn=20005;
int n,m,cnt,ans,s,t,tot;
int head[mxn],dis[mxn],a[mxn];
int dx[8]=,dy[8]=;
struct node f[mxn<<2];
inline
void add(int u,int v,int flow)
inline
bool bfs()
}if(dis[t]>0) return
1; return0;}
inline
int find(int u,int low)
}if(!sum) dis[u]=-1;
return sum;
}int main()
}return
0;}
網路流24題 魔術球問題(簡化版
問題描述 假設有n根柱子,現要按下述規則在這n根柱子中依次放入編號為 1,2,3,4.的球。1 每次只能在某根柱子的最上面放球。2 在同一根柱子中,任何2個相鄰球的編號之和為完全平方數。試設計乙個演算法,計算出在n根柱子上最多能放多少個球。例如,在4 根柱子上最多可 放11個球。程式設計任務 對於給...
網路流24題 魔術球問題(簡化版
輸入檔案 balla.in輸出檔案 balla.out簡單對比 時間限制 1 s 記憶體限制 128 mb 問題描述 假設有n根柱子,現要按下述規則在這n根柱子中依次放入編號為 1,2,3,4.的球。1 每次只能在某根柱子的最上面放球。2 在同一根柱子中,任何2個相鄰球的編號之和為完全平方數。試設計...
報表製作簡化版
機房收費系統無論是重構還是第一版,都用到了報表,為什麼在乙個系統中要新增報表呢?報表的作用是什麼呢?報表百科。我理解的報表是 向上級報告情況的乙個媒介,沒有固定的格式。之前在專案中,我們真正給企業做過一次報表,是以匯出word的形式生成的,大概格式如圖 這次在自己的 機房收費系統 中設計報表,我使用...