1.簡單深搜
#include
#include
using
namespace std;
string data[10]
;int ans;
int vis[10]
[10];
//標記
bool
solve
(int i,
int j)
}int
main()
cout<
return0;
}
有9只盤子,排成1個圓圈。
其中8只盤子內裝著8只蚱蜢,有乙個是空盤。
我們把這些蚱蜢順時針編號為 1~8
每只蚱蜢都可以跳到相鄰的空盤中,
也可以再用點力,越過乙個相鄰的蚱蜢跳到空盤中。
請你計算一下,如果要使得蚱蜢們的隊形改為按照逆時針排列,
並且保持空盤的位置不變(也就是1-8換位,2-7換位,…),至少要經過多少次跳躍?
注意:要求提交的是乙個整數,請不要填寫任何多餘內容或說明文字。
1.寬搜
2.用陣列模擬狀態
#include
//寬搜
#include
#include
#include
#include
using
namespace std;
char
*start=
"012345678"
;char
*target=
"087654321"
;struct stateandlevel};
struct cmp};
queue q;
set<
char
*,cmp>allstate;
void
swap
(char
*s,int a,
int b)
void
addnei
(char
*state,
int pos,
int new_pos,
int le)
}int
main()
int pos0=sal.pos0;
allstate.
insert
(state)
;//新增鄰居左一
int new_pos=
(pos0-1+
9)%9
;addnei
(state,pos0,new_pos,le)
;//新增左二
new_pos=
(pos0-2+
9)%9
;addnei
(state,pos0,new_pos,le)
;//新增右一
new_pos=
(pos0+1+
9)%9
;addnei
(state,pos0,new_pos,le)
;//新增右二
new_pos=
(pos0+2+
9)%9
;addnei
(state,pos0,new_pos,le)
; q.
pop();
}return0;
}
這道題不會
6x6的方格,沿著格仔的邊線剪開成兩部分。
要求這兩部分的形狀完全相同。
如圖4-1,4-2,4-3:就是可行的分割法。
試計算:
包括這3種分法在內,一共有多少種不同的分割方法。
注意:旋轉對稱的屬於同一種分割法。
請提交該整數,不要填寫任何多餘的內容或說明文字。
1.二分
#include
#include
using
namespace std;
char s[
100]
;int len;
int pos;
//求出當前字串,自當前下標到結束能匹配的字串長度
intf()
else
if(s[pos]
=='x'
)else
if(s[pos]
=='|'
)else
if(s[pos]
==')')}
m=max
(m,tmp)
;return m;
}int
main()
兒童節那天有k位小朋友到小明家做客。小明拿出了珍藏的巧克力招待小朋友們。
小明一共有n塊巧克力,其中第i塊是hi x wi的方格組成的長方形。
為了公平起見,小明需要從這 n 塊巧克力中切出k塊巧克力分給小朋友們。切出的巧克力需要滿足:
1. 形狀是正方形,邊長是整數
2. 大小相同
例如一塊6x5的巧克力可以切出6塊2x2的巧克力或者2塊3x3的巧克力。
當然小朋友們都希望得到的巧克力盡可能大,你能幫小hi計算出最大的邊長是多少麼?
1.二分查詢
#include
//列舉 優化
using
namespace std;
intmain()
//int len=100000;
int r=
100001
;int l=1;
int ans=0;
while
(l<=r)
if(cnt>=k)
else r=mid-1;
} cout<
return0;
}
x星球的一批考古機械人正在一片廢墟上考古。
該區域的地面堅硬如石、平整如鏡。
管理人員為方便,建立了標準的直角座標系。
每個機械人都各有特長、身懷絕技。它們感興趣的內容也不相同。
經過各種測量,每個機械人都會報告乙個或多個矩形區域,作為優先考古的區域。
矩形的表示格式為(x1,y1,x2,y2),代表矩形的兩個對角點座標。
為了醒目,總部要求對所有機械人選中的矩形區域塗黃色油漆。
小明並不需要當油漆工,只是他需要計算一下,一共要耗費多少油漆。
其實這也不難,只要算出所有矩形覆蓋的區域一共有多大面積就可以了。
注意,各個矩形間可能重疊。
本題的輸入為若干矩形,要求輸出其覆蓋的總面積。
1.線段樹問題
2.現只會列舉
#include
using
namespace std;
int n,sum;
bool p[
10005][
10005];
void
paint
(int x1,
int y1,
int x2,
int y2)
intmain()
for(
int i=
0;i<
10005
;i++
)for
(int j=
0;j<
10005
;j++)if
(p[i]
[j]==
1) sum++
; cout<
}
2015藍橋杯整理
1.數學思維 include using namespace std intmain ans n cout 小明被劫持到x賭城,被迫與其他3人玩牌。一副撲克牌 去掉大小王牌,共52張 均勻發給4個人,每個人13張。這時,小明腦子裡突然冒出乙個問題 如果不考慮花色,只考慮點數,也不考慮自己得到的牌的先...
2017a組藍橋杯
2,3,5,7,11,13,是素數序列。類似 7,37,67,97,127,157 這樣完全由素數組成的等差數列,叫等差素數數列。上邊的數列公差為30,長度為6。2004年,格林與華人陶哲軒合作證明了 存在任意長度的素數等差數列。這是數論領域一項驚人的成果!有這一理論為基礎,請你借助手中的計算機,滿...
2017 藍橋杯 迷宮(dfs)
x星球的一處迷宮遊樂場建在某個小山坡上。它是由10x10相互連通的小房間組成的。房間的地板上寫著乙個很大的字母。我們假設玩家是面朝上坡的方向站立,則 l表示走到左邊的房間,r表示走到右邊的房間,u表示走到上坡方向的房間,d表示走到下坡方向的房間。x星球的居民有點懶,不願意費力思考。他們更喜歡玩運氣類...