1.如果平面上任取 n 個整點(橫縱座標都是整數),其中一定存在兩個點,它們連線的中點也是整點,那麼 n至少是__5__。
分析:構造法。
想象一下縱橫交錯的棋盤,每個交匯點的橫縱座標都是整數。如果存在三點共線(橫向、縱向、斜向),那麼一定存在其中兩個點連線的中點也是整點。如下圖所示:
要保證一定存在兩個點、它們連線的中點也是整點,那麼需要構造出最壞情況下至多選多少個點、不在一條直線上,此時再新增任意乙個點,則一定出現3點一線。構造方法如下:
在 noi 期間,主辦單位為了歡迎來自全國各地的選手,舉行了盛大的晚宴。在第十八桌,有 55 名大陸選手和 55 名港澳選手共同進膳。為了增進交流,他們決定相隔就坐,即每個大陸選手左右相鄰的都是港澳選手、每個港澳選手左右相鄰的都是大陸選手。那麼,這一桌共有____種不同的就坐方案。注意:如果在兩個方案中,每個選手左邊相鄰的選手均相同,則視為同乙個方案。
分析:圓排列問題。
5名大陸選手的排列方案數為:5!5!
5名港澳選手安排在大陸選手之間的5個空位的排列方案數為:5!5!
總的排列方案數為:5!×5!5!×5!。下圖是一種排列的方案:但每位選手左邊相鄰的選手均相同,為重複方案。
最終結果為:5!×5!÷5=28805!×5!÷5=2880
#include
using
namespace std;
int n, i, j, a[
100]
[100];
intsolve
(int x,
int y)
intmain()
遞迴求解數塔路徑和的最大值。答案為14。
#include
#include
using
namespace std;
int n, ans, i, j;
string s;
char
get(
int i)
intmain()
elseif(
get(i+j)
>
get(ans+j)
)break;}
for(j =
0; j <= n-
1; j++
) cout<<
get(ans+j)
; cout<
}
手動模擬
}}1.初始化flag變數
2.從最後乙個數字開始將data[i]設定成沒有使用過的
3.將i位置設定成數字j
4.列舉1~n所有數字
5.列舉出乙個方案就跳出當前迴圈
普及 NOIP 2012 擺花
題目描述 小明的花店新開張,為了吸引顧客,他想在花店的門口擺上一排花,共m盆。通過調查顧客的喜好,小明列出了顧客最喜歡的n種花,從1到n標號。為了在門口展出更多種花,規定第i種花不能超過ai盆,擺花時同一種花放在一起,且不同種類的花需按標號的從小到大的順序依次擺列。試程式設計計算,一共有多少種不同的...
NOIP2012普及 擺花
題解 最開始確實認為是一道動規題,但推不出狀態方程,然後想既然是方案數 那是否有乙個規律,然後也沒推出來,就跳過了 後來聽了講解,覺得還是挺好理解的,定義d i j 表示用i種花擺了j盆時的方案數 三層迴圈i為花的種數,j為擺花的個數,k為當前這一種花擺出來的個數 則不考慮當前這一種花時的總數為d ...
NOIP2012普及組 尋寶
這道實際難度入門的題做得真 要麻煩死我,由於摸不到電腦,在大腦裡調了3天都翻不轉!p1076 尋寶 思路 暴力模擬 這是基礎,單純暴力據說會全部tle 取模優化 這樣時間複雜度驟降到o nm ac includeusing namespace std long long n,m,t,a 10005 ...