锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
榪欎釜鍗氬涓嶇敤浜嗭紝涓浜涜繕濂界殑璧勬枡浼氭參鎱㈡惉鍒版柊鍗氬
璋㈣阿鏈嬪弸浠戶緇叧娉?br>
]]>
Elevator Simulation
http://acm.hdu.edu.cn/showproblem.php?pid=1386
Tetris
http://acm.hdu.edu.cn/showproblem.php?pid=3013
Gates of Logic
http://acm.hdu.edu.cn/showproblem.php?pid=1886
Teacher YYF
http://acm.pku.edu.cn/JudgeOnline/problem?id=3746
涓浗璞℃II
http://acm.fzu.edu.cn/problem.php?pid=1694
Typesetting
http://acm.hdu.edu.cn/showproblem.php?pid=2718
Connect
http://acm.hdu.edu.cn/showproblem.php?pid=2727
Hex Tile Equations
http://acm.hdu.edu.cn/showproblem.php?pid=2702
HTML Wrapper
http://acmicpc-live-archive.uva.es/nuevoportal/data/problem.php?p=4083
]]>
]]>
1062 鏄傝吹鐨勮仒紺?br>1074 Parallel Expectations
1093 Formatting Text
1112 Team Them Up!
1143 Number Game
1160 Post Office
1178 Camelot
1179 Polygon
1180 Batch Scheduling
1187 闄ㄧ煶鐨勭瀵?br>1189 閽夊瓙鍜屽皬鐞?br>1191 媯嬬洏鍒嗗壊
1192 鏈浼樿繛閫氬瓙闆?br>1208 The Blocks Problem
1239 Increasing Sequences
1240 Pre-Post-erous!
1293 Duty Free Shop
1322 Chocolate
1390 Blocks
1414 Life Line
1432 Decoding Morse Sequences
1475 Pushing Boxes
1485 Fast Food
1505 Copying Books
1513 Scheduling Lectures
1609 Tiling Up Blocks
1633 Gladiators
1635 Subway tree systems
1636 Prison rearrangement
1644 To Bet or Not To Bet
1649 Market Place
1655 Balancing Act
1661 Help Jimmy
1664 鏀捐嫻鏋?br>1671 Rhyme Schemes
1682 Clans on the Three Gorges
1690 (Your)((Term)((Project)))
1692 Crossed Matchings
1695 Magazine Delivery
1699 Best Sequence
1704 Georgia and Bob
1707 Sum of powers
1712 Flying Stars
1714 The Cave
1717 Dominoes
1718 River Crossing
1722 SUBTRACT
1726 Tango Tango Insurrection
1732 Phone numbers
1733 Parity game
1737 Connected Graph
1740 A New Stone Game
1742 Coins
1745 Divisibility
1770 Special Experiment
1771 Elevator Stopping Plan
1776 Task Sequences
1821 Fence
1837 Balance
1848 Tree
1850 Code
1853 Cat
1874 Trade on Verweggistan
1889 Package Pricing
1920 Towers of Hanoi
1926 Pollution
1934 Trip
1936 All in All
1937 Balanced Food
1946 Cow Cycling
1947 Rebuilding Roads
1949 Chores
1952 BUY LOW, BUY LOWER
1958 Strange Towers of Hanoi
1959 Darts
1962 Corporative Network
1975 Median Weight Bead
1989 The Cow Lineup
2018 Best Cow Fences
2019 Cornfields
2029 Get Many Persimmon Trees
2033 Alphacode
2047 Concert Hall Scheduling
2063 Investment
2081 Recaman's Sequence
2082 Terrible Sets
2084 Game of Connections
2127 Greatest Common Increasing Subsequence
2138 Travel Games
2151 Check the difficulty of problems
2152 Fire
2161 Chandelier
2176 Folding
2178 Heroes Of Might And Magic
2181 Jumping Cows
2184 Cow Exhibition
2193 Lenny's Lucky Lotto Lists
2231 Moo Volume
2279 Mr. Young's Picture Permutations
2287 Tian Ji -- The Horse Racing
2292 Optimal Keypad
2329 Nearest number - 2
2336 Ferry Loading II
2346 Lucky tickets
2353 Ministry
2355 Railway tickets
2356 Find a multiple
2374 Fence Obstacle Course
2378 Tree Cutting
2384 Harder Sokoban Problem
2392 Space Elevator
鏆村姏涓夊眰寰幆
2397 Spiderman
2414 Phylogenetic Trees Inherited
2424 Flo's Restaurant
2430 Lazy Cows
2915 Zuma
3017 Cut the Sequence
3028 Shoot-out
3124 The Bookcase
3176 Cow Bowling
3133 Manhattan Wiring
3345 Bribing FIPA
3375 Network Connection
]]>
榪欐槸鍏ラ棬棰橈紝鏁版嵁杈冨ぇ錛岄渶瑕佽蹇嗗寲鎼滅儲
http://acm.pku.edu.cn/JudgeOnline/problem?id=1321
涓婇鐨勬彁楂樼増錛屼笉榪囨暟鎹秴灝忥紝鐖嗘悳閮借兘榪?br>
http://acm.sgu.ru/problem.php?contest=0&problem=223
鍏堣棰勫鐞嗗嚭涓琛屼腑鐨勫叏閮ㄥ彲琛岀姸鎬亊
鐒跺悗DP鐨勬椂鍊欏閥濡欑殑榪愮敤浣嶈繍綆楄繘琛岀姸鎬佺殑鍒ゆ柇鍜岃漿縐?br>鐘舵乨p涓綅榪愮畻鐨勫閥濡欒繍鐢ㄤ細澶у箙搴︽彁楂樼▼搴忕殑鏁堢巼鍜屽竻姘旂▼搴?br>
http://acm.pku.edu.cn/JudgeOnline/problem?id=1185
闈炲父緇忓吀鐨勭姸鎬丏P錛岀敱浜庢敾鍑昏寖鍥存槸涓ゆ牸錛屾墍浠ヨ淇濇寔涓や釜鐘舵侊紝鏈変漢鐢ㄤ笁榪涘埗鍘嬬緝錛屾垜瑙夊緱澶儲浜?涓嶈兘浣跨敤椋橀哥殑浣嶈繍綆楋級
浣嗘槸[101][2^10][2^10]寰楃姸鎬佸お澶э紝鑰冭檻鍒?^10涓湁寰堝鎯呭喌鏄笉鍙埌杈劇殑
璁$畻涓嬪綋m=10鐨勬椂鍊欐渶澶?0涓悎娉曠姸鎬侊紝鎵浠ユ垜寮浜哰101][60][60]鐨勬暟緇勮蹇嗗寲DP榪囦簡
http://acm.hdu.edu.cn/showproblem.php?pid=2640
teddy澶х墰鐨勯鐩紝鍜屼笂棰樺樊涓嶅錛屼笉榪囦笉鑳介噸鍙犳斁錛屾墍浠ュ鐞嗘瘮涓婇鐑﹀緢澶?br>鍚屾牱2^8閲屾湁寰堝涓嶅彲鍒拌揪鐨勬儏鍐碉紝鏈澶氫箣鏈?3縐?br>鎵浠ユ垜寮[101][13][13]鐨勬暟緇?5ms灝辮繃浜嗭紝鍝堝搱
榪欏氨濂藉儚鏄?span style="color: red;">涓ゆ鐘舵佸帇緙?/span>
鏈榪戠殑DP棰樼洰鎰熻鍒?span style="color: red;">鎶婂緢澶氫笉鍙埌杈劇殑鐘舵佸帇緙╂帀鏁堢巼浼氭彁楂樿秴澶殈涔熷彲鑳借紼嬪簭浠嶵LE MLE鍙樻垚AC~
http://acm.pku.edu.cn/JudgeOnline/problem?id=2411
http://acm.hdu.edu.cn/showproblem.php?pid=1400
榪欓亾鍏跺疄寰堢畝鍗曪紝鍏堥澶勭悊鍑哄綋鍓嶇姸鎬乻1鍒頒笅涓鐘舵佺殑鍙兘鍊約2錛宧ash[1<<m,1<<m]璁板綍錛宮涓鴻緝灝忓?br>dp[0][(1<<m)-1] = 1
鐒跺悗緇忚繃n*(1<<m)*(1<<m)鐨勫驚鐜緱鍑虹粨鏋渄p[n][(1<<m)-1]
http://acm.sgu.ru/problem.php?contest=0&problem=223
涓ょ鐮栧潡錛岄櫎浜嗛澶勭悊鐨勬椂鍊欑姸鎬佸鐐癸紝鏈?縐嶅垎鏀紝鍏朵粬鐨勯兘鍜屼笂涓棰樹竴鏍?br>(涓繪剰涓涓姸鎬佸埌鍙︿竴涓姸鎬佸彲鑳戒細鏈夊縐嶆儏鍐碉紝hash鐨勬椂鍊欒鐢?+鑰屼笉鏄痶rue false)
http://acm.hdu.edu.cn/showproblem.php?pid=2280
瑕佹眰鐢ㄦ渶灝戠殑1閾烘弧鎵鏈夌殑絀烘牸錛屽叾涓?鏄病鐢ㄧ殑(鍙互鐢ㄤ袱涓?浠f浛)錛屽寲綆涔嬪悗浣跨敤鐨勬柟鍧楀拰涓婁竴棰樹竴鏍鳳紝涓鏍風殑棰勫鐞嗗悗
dp姹傚嚭鏈灝戠殑1
http://acm.pku.edu.cn/JudgeOnline/problem?id=1038
http://acm.hdu.edu.cn/showproblem.php?pid=2696
http://acm.hdu.edu.cn/showproblem.php?pid=2442
http://acm.hdu.edu.cn/showproblem.php?pid=1755
http://acm.hdu.edu.cn/showproblem.php?pid=1820
http://acm.hdu.edu.cn/showproblem.php?pid=1668
http://acm.hdu.edu.cn/showproblem.php?pid=2518
http://acm.hdu.edu.cn/showproblem.php?pid=1666
http://acm.hdu.edu.cn/showproblem.php?pid=1820
http://acm.hdu.edu.cn/showproblem.php?pid=2315
]]>
鎯婅浜庡畠鍋氭繁鎼滅殑鏃跺欏彲浠ヨ揪鍒板姝ゅ己鍔茬殑鍓灊
涓嬪崍鐨勬椂鍊欎笉鐪嬬綉涓婄殑妯℃澘鑷繁鍐欎簡涓涓紝鑷涓烘槸姣旀ā鏉垮皯浜嗕竴涓猣or寰幆錛屼絾鏄啓濂藉悗鎵嶅彂鐜版病鏈夋ā鏉跨殑鍚彂寮忔悳绱㈢殑鏁堢巼錛屽氨榪欐牱媧葷敓鐢熺殑TLE浜嗭紝嫻垂浜嗘垜濂藉嚑涓皬鏃跺晩~~%>_<%~~
鏅氫笂鍙ソ鍐欑敤妯℃澘鐨勬柟娉曪紝鍐欎簡涓涓悗鐬棿榪囦簡錛屾劅瑙夐毦搴︿篃涓嶈繃灝斿皵
浣嗚繖涓垶韞堥摼鍙槸瀹規槗瑙g瓟鍗村緢闅劇湅鍑虹殑涓伙紝鏋勯犺垶韞堥摼榪樻槸鍏抽敭
鐚笂鎴戠殑妯℃澘~~
鏈綆鍗曠殑鑸炶箞閾撅紝鏁堢巼浠呮瘮hhanger宸紝鍙互璺?40MS,涓嶈繃鍚庢潵鎴戞祴鍑轟簡涓浜涙暟鎹殑緇撴瀯錛屾毚鍔涗紭鍖栧埌浜?24MS錛屽搱鍝堝搱(寰楁剰涓涓?~~~
http://acm.hust.edu.cn/thanks/problem.php?id=1017
(綺劇‘瑕嗙洊闂)
L[R[c]] = L[c];
R[L[c]] = R[c];
for(int i = D[c]; i != c ; i = D[i]) {
for(int j = R[i]; j != i ; j = R[j]) {
U[D[j]] = U[j];
D[U[j]] = D[j];
--S[Col[j]];
}
}
}
void resume(int &c) {
for(int i = U[c];i != c;i = U[i]) {
for(int j = L[i]; j != i ; j = L[j]) {
++S[Col[j]];
U[D[j]] = j;
D[U[j]] = j;
}
}
L[R[c]] = c;
R[L[c]] = c;
}
bool dfs() {
if(R[0] == 0) {
return true;
}
int i , j;
int idx,minnum = 999999;
for(i = R[0];i != 0 ; i = R[i]) {
if(S[i] < minnum) {
minnum = S[i];
idx = i;
}
}
remove(idx);
for(i = D[idx]; i != idx; i = D[i]) {
ans[deep++] = Row[i];
for(j = R[i]; j != i ; j = R[j]) {
remove(Col[j]);
}
if(dfs()) {
return true;
}
deep --;
for(j = L[i]; j != i ; j = L[j]) {
resume(Col[j]);
}
}
resume(idx);
return false;
}
(綺劇‘瑕嗙洊闂)
嫻欏ぇ鐨勮繖閬撶渷璧涢鍏跺疄灝辨槸瀹岀編瑕嗙洊鐨勮漿鍖杶鎶婃瘡涓鏍奸兘鍒嗗紑鏉ワ紝瑕佹眰灝辨槸閫塏涓柟鍧楁妸鍥懼畬緹庤鐩栧叏閮ㄦ悳瀹岀劧鍚庢渶灝忕殑涓暟
鎬濊礬錛氳鏂瑰潡錛屽垪鍗曚綅灝忔牸瀛愶紝鐭╅樀涓?鏄柟鍧楁墍鑳借鐩栫殑灝忔牸瀛?br>
http://acm.nuaa.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1507
(閲嶅瑕嗙洊闂) 閲嶅瑕嗙洊鐨勬ā鏉塊
鐚笂妯℃澘
for(int i = D[c]; i != c ; i = D[i]) {
L[R[i]] = L[i];
R[L[i]] = R[i];
}
}
void resume(int &c) {
for(int i = U[c]; i != c ; i = U[i]) {
L[R[i]] = i;
R[L[i]] = i;
}
}
int h() {
bool hash[51];
memset(hash,false,sizeof(hash));
int ret = 0;
for(int c = R[0]; c != 0 ; c = R[c]) {
if(!hash[c]) {
ret ++;
hash[c] = true;
for(int i = D[c] ; i != c ; i = D[i]) {
for(int j = R[i] ; j != i ; j = R[j]) {
hash[Col[j]] = true;
}
}
}
}
return ret;
}
bool dfs(int deep,int lim) {
if(deep + h() > lim) {
return false;
}
if(R[0] == 0) {
return true;
}
int idx , i , j , minnum = 99999;
for(i = R[0] ; i != 0 ; i = R[i]) {
if(S[i] < minnum) {
minnum = S[i];
idx = i;
}
}
for(i = D[idx]; i != idx; i = D[i]) {
remove(i);
for(j = R[i]; j != i ; j = R[j]) {
remove(j);
}
if(dfs(deep+1,lim)) {
return true;
}
for(j = L[i]; j != i ; j = L[j]) {
resume(j);
}
resume(i);
}
return false;
}
http://acm.tju.edu.cn/acm/showp3219.html
http://acm.hdu.edu.cn/showproblem.php?pid=2295
(閲嶅瑕嗙洊闂)
榪欓鏃犳硶杞寲鎴愬畬緹庤鐩栵紝鎵浠emove鍜宺esume鐨勬椂鍊欒鍙樺寲涓涓嬶紝浣嗘槸榪欐牱榪樻槸浼氳秴鏃舵垜鐪嬩簡鏍囩▼鎵嶇畻AC銆傚攭銆傘?br>涓昏鏄噷杈圭殑涓涓狝*鐨刪鍑芥暟鏄湪鏄お鐘鍒╀簡錛屼竴涓嬩粠TLE鍒頒簡46MS銆傘傘傘傚壀鏋濊繕鏄潪甯擱噸瑕佺殑
鎬濊礬錛氳鏄浄杈撅紝鍒楁槸鍩庡競錛岀煩闃典腑1鏄浄杈捐鐩栧煄甯?br>
http://acm.fzu.edu.cn/problem.php?pid=1686
(閲嶅瑕嗙洊闂)
榪欓亾棰樹篃鍚屼笂閬撲竴鏍鋒槸錛?鍦?-1鐭╅樀涓夊彇鏈灝戠殑琛岋紝浣垮緱姣忎竴鍒楁渶灝戞湁涓涓?" 榪欎釜妯″瀷
鎵浠ュ拰涓婁竴閬撳緩琛ㄤ竴鏍峰緩濂戒箣鍚庡涓婃ā鏉垮氨AC浜唦
鎬濊礬錛氳鏄灇涓懼湪姣忎釜浣嶅瓙鏀鵑瓟娉曪紝鍒楀紡鎬墿涓暟(鏈濂界粰鎬墿鏍囪涓猧d)錛岀煩闃典腑鐨?鏄湪榪欎釜鍦版柟鏀鵑瓟娉曟槸鍚﹁兘杈懼埌鐩爣鎬墿
http://www.spoj.pl/problems/NQUEEN/
(閲嶅瑕嗙洊闂)
N鐨囧悗闂錛屾墦鐨勬椂鍊欐病鑳芥兂鍒版庝箞杞寲鎴愮簿紜鐩栵紝鍙槸鐢ㄤ簡dancing links鐨勬濇兂錛屽偦鍌葷殑鑺變簡涓涓櫄涓婂畬鎴愪簡涓涓秴綰у鏉傜殑綾沖瓧鍨嬮摼琛?閲嶅瑕嗙洊)錛屽紑濮嬬殑鏃跺欏惎鍙戝紡鍑芥暟S娌℃湁鏇存柊錛屽鑷存病鏈夊彂鎸ユ晥鐢紝緇撴灉鏈緥30涓?鐨勬暟鎹兘璺戜笉鍑烘潵錛岃繕浠ヤ負鏄兂娉曞嚭閿欎簡錛岀潯瑙夊墠鍦ㄥ簥涓婃兂鍒幫紝鏀逛簡涓涓嬶紝鏁堢巼鍛堟寚鏁扮駭澧為暱錛?0涓?鐨勭灛闂磋窇鍑烘潵錛屽湪state閲屾帓鍒扮涓錛屽搱鍝?br>
(綺劇‘瑕嗙洊闂)
浠婂ぉCH鏁欐垜鎬庝箞灝嗕箣杞寲鎴愬崄瀛楅摼琛ㄧ殑綺劇‘瑕嗙洊錛屼絾鏄煩闃墊槸(n*n)*(6*n-2)姣旂背瀛楀瀷閾捐〃n*n鐨勫ぇ浜嗗ソ澶氬嶏紝浜や簡涓涓嬶紝璺戜簡1s錛屾晥鐜囦笉濡傜背瀛楀瀷鐨?br>鍏舵濊礬鏄細琛屾槸鏍煎瓙鏁皀*n,鍒楁槸(琛?鍒?姝i嗗瑙掔嚎)錛岀煩闃典腑鐨?鏄斁鍦ㄥ悇鑷笂鎵鍗犲緱琛岋紝鍒楋紝瀵硅綰?br>涓嶉渶瑕佸叏閮ㄦ悳瀹岋紝鍙鍒濆鐨囧悗+dfs鐨勬繁搴﹁揪鍒皀(鏀句簡n涓殗鍚?灝眗eturn true
http://acm.hdu.edu.cn/showproblem.php?pid=2828
(綺劇‘瑕嗙洊闂)
榪欓鎭跺寲N鐨囧悗涓鏍峰彲浠ヨ漿鍖栨垚澶氱瑕嗙洊銆傛垜鏄簿紜鐩栵紝鍒楁槸n+m鍙綺劇‘鍓峮涓氨澶熶簡
(閲嶅瑕嗙洊闂)
榪樺彲浠ヨ漿鍖栨垚涓嶇簿紜紝閭d箞鍒楀氨鏄痭
褰撶劧錛屾棰樺嚭棰樹漢鐨勬剰鍥炬槸浜屽垎鍖歸厤銆傘傘?br>
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=31
http://acm.pku.edu.cn/JudgeOnline/problem?id=1084
(閲嶅瑕嗙洊闂)
榪欓瑕佷笉鍜屾垜璇存槸dancing links 鎴戣繕鐪熺湅涓嶅嚭鏉?br>姝ら寤鴻〃瓚呯儲錛岃櫧鐪嬪嚭鏉ヤ絾鏄緩琛ㄥ氨鑺變簡鎴戜竴涓崐灝忔椂錛岃繕榪垜浣跨敤涓婅鐨勫ご鑺傜偣錛屼互鍓嶆垜鍙槸鐢ㄥ垪鐨勫ご鑺傜偣錛屽姫鍔涗簡寰堜箙錛岃繃浜唖ample灝盇C浜嗭紝鐑﹀氨鐑﹀湪寤鴻〃涓?br>鎬濊礬錛氳鏄伀鏌存鏁幫紝鍒楁槸瀹岀編鏃惰兘鏋勬垚鐨勭煩闃墊暟鐩紝鐭╅樀涓殑1鏄垪鐭╅樀鏄惁鍖呭惈琛岀伀鏌?br>
http://acm.pku.edu.cn/JudgeOnline/problem?id=3074
http://acm.pku.edu.cn/JudgeOnline/problem?id=3076
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3038
(綺劇‘瑕嗙洊闂)
緇忓吀鐨勬暟鐙紝鐪嬩簡璁烘枃鎵嶆槑鐧芥庝箞瑕嗙洊錛?*9*9鐨勮 (9+9+9)*9+9*9鐨勫垪
鎬濊礬錛氳鏄?1涓皬鏍?姣忎釜鏍煎瓙鐨?涓彲鑳芥暟瀛楋紝鍒楁槸81涓皬鏍?9琛?鍒?灝忓潡鐨?涓暟瀛?br>姣忓垪紜垏鐨勬湁4涓?
寮濮嬭鍏ョ殑鏃跺欏惂紜畾鐨勬暟瀛楃殑澶翠笂鐨?鍒犳帀鍙互寰堝ぇ鐨勬彁楂樻晥鐜?br>
http://acm.hdu.edu.cn/showproblem.php?pid=2518
瓚呯埥鐨刣ancing links
榪欓鎵鏈夌殑鏂瑰潡鍙互鏃嬭漿錛岃繖鐐硅秴鐑
鎴戝樊鐐瑰氨浜鴻倝浠g爜浜嗭紝鏋氫婦鎵鏈夌姸鎬侊紝涓嶈繃鏈鍚庢垜榪樻槸淇敼鎴愪笉浜鴻倝鐨勫姙娉?br>鍙湁鍑犵粍絳旀錛岀敤dancing links鏆村姏璺戝嚭鎵鏈夌粍鍚堝悗鐒跺悗鎵撹〃錛屽樋鍢匡紝鎴戝氨鏄繖涔堢尌鐞愮殑榪囩殑
72*鎵鏈夋憜鏀炬暟~
鎬濊礬錛?0涓牸瀛愬姞12涓柟鍧椾綔涓哄垪錛屾墍鏈夋憜鏀劇殑鏂規鏁頒綔涓鴻
濂戒簡錛孉鍏変笂榪伴鐩甦ancing links鐨勫涔犱篃鍛婁竴孌佃惤錛岃繖涓垶韞堟槸鍦ㄦ槸浼樼編錛屼互鍚庡嚭棰樹竴瀹氳璋變竴鏇茬粡鍏哥殑鑸炶箞~~
2009.9.6
鍙戠幇dancing links榪樿兘鍋?span style="color: red;">鏈澶у洟
http://acm.hdu.edu.cn/showproblem.php?pid=1530
杞寲鎴愯ˉ鍥懼悗鍐嶅緩琛ㄣ傘傘備笉榪囨晥鐜囧緢浣庯紝璺戜簡6000+MS錛屽叏閮ㄦ悳瀹屾壘涓涓渶澶х殑錛岃繕娌℃湁鏇翠紭鐨勫姙娉曚紭鍖栵紝灝濊瘯榪囦簩鍒嗗啀鍐欎釜h鍑芥暟鏈灉銆傘傘?br>
10.15
http://acm.hdu.edu.cn/showproblem.php?pid=3156
鍜岄浄杈劇被浼鹼紝涓嶈繃鏀緍adar鐨勭偣瑕佹眰鍑烘潵錛屼篃鏄厛浜屽垎鏋氫婦鍗婂緞錛岀劧鍚庡埄鐢ㄤ袱涓偣鍜屽崐寰勭‘瀹氫竴涓渾蹇僀(n,2)錛屽彲浠ヨ瘉鏄庡鏋滄斁鍏朵粬鍦版柟涓瀹氭病榪欎釜鍦嗗績浼?br>
]]>
http://acm.hdu.edu.cn/showproblem.php?pid=1055
濂界偣緇忓吀鐨勪竴閬撻鐩紝鍋氫簡鍗婂ぉ閮藉仛涓嶅嚭鏉?br>鍚庢潵鍒扮綉涓婄湅浜嗚В棰樻姤鍛婃墠鏄庣櫧錛堣В棰樻姤鍛婄綉涓婃湁錛屾垜灝變笉鍐嶅嚭璇存槑浜嗭級鏄痭^2鐨勭畻娉?br>鎴戝湪鎯籌紝姣忔閮介亶鍘嗕竴閬嶆壘鏈澶ф潈鍊肩殑鐐逛細涓嶄細澶氮璐規椂闂達紝濡傛灉鐢ㄥ爢鍙栧嚭鏉冨兼渶澶х殑鐐規晥鐜囧氨浼氭湁寰堝ぇ鏀硅繘錛屽彉鎴恘*log(n)浜?br>浣嗘槸鏈澶ф潈鍊肩殑鐖朵翰鑺傜偣涔熻浠庡爢涓彇鍑猴紝榪欐湁鐐歸夯鐑?br>緇撳悎鏄ㄥぉZOJ鏈堣禌姣旇禌涓嚜鍒涚殑鍙互鍙栧嚭浠繪剰鑺傜偣鐨勪簩鍙夊爢錛岃褰曚綅瀛愭潵瀹炵幇錛屾兂鍒頒簡鏂規硶錛屽鏂硅瘯楠屼箣鍚庢灉鐒舵垚鍔熶簡
鍦≒KU鎻愪氦涔熷彧鐢ㄤ簡16MS...鍝堝搱
璐村嚭鏉ユ檼鏅?
#include "string"
#define maxn 1001
//-----------------------Binary Heap------------------------------------
struct Heap {
int val,cost,time,idx;
}hh[maxn];
int pos[maxn];
int len;
bool Prior(Heap a,Heap b) {
return a.val * b.time > b.val * a.time;
}
void Push(Heap s) {
int i;
for(i = ++len ; i > 1 && Prior(s,hh[i/2]); i /= 2) {
hh[i] = hh[i/2];
pos[hh[i].idx] = i;
}
hh[i] = s;
pos[hh[i].idx] = i;
}
Heap Pop(int idx) {
if(idx == -1) return hh[0];
Heap ret = hh[idx];
Heap last = hh[len--];
int i,s;
for(i = idx ; i * 2 <= len; i = s) {
s = i * 2;
if(s + 1 <= len && Prior(hh[s+1],hh[s])) {
s ++;
}
if(Prior(hh[s],last)) {
hh[i] = hh[s];
pos[hh[i].idx] = i;
} else {
break;
}
}
hh[i] = last;
pos[hh[i].idx] = i;
for(i = idx ; i > 1 && Prior(hh[i],hh[i/2]); i /= 2) {
Heap buf = hh[i];
hh[i] = hh[i/2];
hh[i/2] = buf;
pos[hh[i].idx] = i;
pos[hh[i/2].idx] = i/2;
}
return ret;
}
//---------------------------------------------------------------
int father[maxn];
int main() {
int n,r,i;
hh[0].cost = hh[0].time = hh[0].val = 0;
while(scanf("%d%d",&n,&r),n+r) {
len = 0;
Heap root;
for(i =1 ; i <= n ; i ++) {
Heap buf;
scanf("%d",&buf.cost);
buf.val = buf.cost;
buf.time = 1;
buf.idx = i;
if(i == r) {
root = buf;
} else {
Push(buf);
}
}
for(i = 1 ; i < n ; i ++) {
int a,b;
scanf("%d%d",&a,&b);
father[b] = a;
}
while(len) {
Heap max = Pop(1);
int f = father[max.idx];
if(f == r) {
root.cost += max.cost + max.val * root.time;
root.time += max.time;
root.val += max.val;
} else {
Heap fa = Pop(pos[f]);
fa.cost += max.cost + max.val * fa.time;
fa.time += max.time;
fa.val += max.val;
fa.idx = f;
Push(fa);
}
pos[max.idx] = -1;
}
printf("%d\n",root.cost);
}
return 0;
}
涓嬭竟鏄痭^2鐨勭畻娉曪紝璺戜簡200+MS銆傘傜畝媧佹槸綆媧侊紝浣嗘晥鐜囦笉楂?br>
#include "string"
#define maxn 1001
struct H{
int val;
int cost;
int time;
void clear() {
val = cost = time = 0;
}
}hh[maxn];
int father[maxn];
int main() {
int n,r,i;
while(scanf("%d%d",&n,&r),n+r) {
for(i =1 ; i <= n ; i ++) {
scanf("%d",&hh[i].cost);
hh[i].val = hh[i].cost;
hh[i].time = 1;
}
for(i = 1; i < n ; i ++) {
int a,b;
scanf("%d%d",&a,&b);
father[b] = a;
}
while(true) {
int idx = 0;
for(i = 1 ; i <= n ; i ++) {
if(i != r && hh[i].time && (idx == 0 || hh[idx].val * hh[i].time < hh[i].val * hh[idx].time)) {
idx = i;
}
}
if(idx == 0) break;
int f = father[idx];
hh[f].cost += hh[idx].cost + hh[idx].val * hh[f].time;
hh[f].val += hh[idx].val;
hh[f].time += hh[idx].time;
hh[idx].clear();
}
printf("%d\n",hh[r].cost);
}
return 0;
}
]]>
http://bbs.zjut.com/viewthread.php?tid=1170233&extra=page%3D1
緇堜簬鐣ョ煡涓浜屼簡錛屾壘鍑犻亾姒傜巼棰樺仛鍋?br>
http://acm.hdu.edu.cn/search.php?field=problem&key=2262
E(now) = 錛圗(NEXT1) + E(NEXT2) +...+E(NEXTn))/n + 1
姣忎釜鐩擱偦鐐瑰緩鏂圭▼錛屾敞鎰忚搗鐐瑰彲浠ヨ蛋鍒板緱杈規墠鑳藉緩鏂圭▼錛屼笉鐒朵細瀵艱嚧鏃犺В
鍏坒loodfill鎵懼埌璧風偣鍙互璧板埌寰楃偣錛岀劧鍚庡緩鏂圭▼錛屾渶鍚庝粛涓珮鏂秷鍏冩ā鏉胯В鎶婄瓟妗堣В鍑烘潵
http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1423
鍚屼笂涓閬撲竴鎽鎬竴鏍風殑棰?br>
http://acm.zjut.edu.cn/ShowProblem.aspx?ShowID=1317
榪欎釜闇瑕佹瀯閫狅紝鐩擱殧浣嶅瓙鏁扮殑杞崲
鎯沖湪鐩擱偦n錛岄兘鍚戝唴椋炵殑璇漬-2錛岄兘鎯沖椋瀗+2錛屼竴涓悜宸︿竴涓悜鍙崇殑璇濆氨淇濇寔n涓嶅彉錛屾墍浠ユ湁涓嬪垪鏂圭▼
E[n] = E[n+2]/4 + E[n-2]/4 + E[n]/2 + 1
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2619
姝ら鏋佸害閮侀椃錛岃漿縐繪柟紼嬪凡緇忔帹鍑烘潵浜嗭紝鍗村洜涓虹簿搴﹂棶棰樿繃涓嶄簡
絎洓涓猻ample鎴戣瘯浜嗕笁涓ā鏉匡紝鍑烘潵鐨勭瓟妗堥兘涓嶄竴鏍楓傘傘傘傘?br>鐢╦ava鍙繃
http://acm.hdu.edu.cn/showproblem.php?pid=3058
涓婁綋鍗囩駭鐗堬紝鍙樻垚浜嗗涓插尮閰嶏紝寤篢ire鍥劇殑鍩虹涓婅繘琛岃漿縐?br>涓鏍峰瓨鍦ㄧ簿搴﹂棶棰橈紝鐢╦ava鍙繃
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2837
鍥犱負鐢墊鏈変笂鏈変笅錛屾垜绱㈡у氨鎶婃ゼ鐨勯珮搴﹀姞鍊?nbsp; n = n * 2 - 2
閭ample鏉ヨ錛?~10鏄悜涓婄殑錛?0~20鏄悜涓嬬殑錛?0灝辨槸0錛屽悜涓婄殑璇濆張鍙樻垚1寮濮?br>鍦ㄧ7鍜岀13灞備細紕板埌楝?鎴戜粠0灞傚紑濮嬶紝鎵浠ユ瘡涓噺閮借-1)
榪欐牱灝卞彲浠ュ緱鍒拌漿縐繪柟紼?br>E[i] = E[(i+j)%n]/6 + 1
if(i == m || i == n-m) {
mat[i][i] = 1;
} else {
mat[i][i] = 6;
mat[i][n] = 6;
for(j = 1; j <= 6; j ++) {
mat[i][(i+j)%n] --;
}
}
}
榪欓寰堟棭灝卞紑濮嬫兂浜嗭紝鐜板湪鎵嶄細鍋氾紝鍏紡濡備笅錛?br>a = p * (1 - q);
b = q * (1 - p);
E[n] = E[n-1] *銆a + E[n+1] * b + E[n] * (1 - a - b);
E[0] = 0;
E[N+M] = 1;
榪欎袱閬揂C鐨勪唬鐮侀兘瓚呯煭錛屽簲璇ユ槸鍏紡棰樸傘傛病涓婅竟鍑犻亾閭d箞鏈夋剰鎬濄傘傘?br>http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2949
http://acm.pku.edu.cn/JudgeOnline/problem?id=3682
鐚笂絎竴嬈″啓鐨勯珮鏂秷鍏冩ā鏉?br>鑻ヨ繑鍥炴椂false鍒欐棤瑙?br>
* mat閲屽緩濂芥柟紼?澧炲箍鐭╅樀 n*(n+1)
* 浼犲叆鏂圭▼涓暟
* 絳旀淇濆瓨鍦╩at[i][i]涓?br>**************************************************/
#include "stdio.h"
#include "string"
#define ab(a) (((a)>0)?(a):(-a))
#define maxn 100
#define eps 1e-10
double mat[maxn][maxn];
void swap(double &a,double &b) {double t = a;a = b;b = t;}
bool Gauss(int n) {
int i,j,row,idx;
double maxx,buf;
for(row = 0; row < n ; row ++) {
for(maxx = 0,i =row ; i < n ; i ++)
if(ab(mat[i][row]) > maxx)
maxx = ab(mat[i][row]),idx = i;
if(maxx < eps)return false;
if(idx != row)
for(j =0 ; j <= n ; j ++)
swap(mat[row][j],mat[idx][j]);
for(i = row + 1; i < n ; i ++)
for(buf=mat[i][row]/mat[row][row],j = row; j <= n ; j ++)
mat[i][j] -= buf * mat[row][j];
}
for(i = n-1;i >= 0; i --) {
for(j = i +1; j < n ; j ++)
mat[i][n] -= mat[i][j]*mat[j][j];
mat[i][i] = mat[i][n]/mat[i][i];
}
return true;
}
]]>
浠婂ぉ鍙圓浜嗕竴閬?br>鏈榪戝鍥懼鏍戣秺鏉ヨ秺鏈夋劅瑙変簡
http://acm.hdu.edu.cn/showproblem.php?pid=2767
#include "algorithm"
using namespace std;
#define maxn 20001
struct Node {
int to;
Node * next;
}list[maxn],opp[maxn];
struct SCC{
int time;
int newid;
int idx;
}hh[maxn];
int time,newid;
bool flag;
bool hash[maxn];
bool hashid[maxn];
bool gashid[maxn];
//--------------------------------------------
void dfs(int idx) {
Node * buf;
buf = list[idx].next;
while(buf) {
if(!hash[buf->to]) {
hash[buf->to] = true;
dfs(buf->to);
}
buf = buf->next;
}
if(time == 7)
time = 7;
hh[idx].time = time ++;
hh[idx].idx = idx;
}
void dfs2(int idx) {
Node * buf;
buf = opp[idx].next;
while(buf) {
if(!hash[buf->to]) {
hash[buf->to] = true;
dfs2(buf->to);
}
buf = buf->next;
}
hh[idx].newid = newid;
}
void dfs3(int idx) {
Node * buf;
buf = list[idx].next;
while(buf) {
if(hh[idx].newid != hh[buf->to].newid) {
hashid[hh[idx].newid] = true;
gashid[hh[buf->to].newid] = true;
}
if(!hash[buf->to]) {
hash[buf->to] = true;
dfs3(buf->to);
}
buf = buf->next;
}
}
bool cmp(SCC a,SCC b) {
return a.time > b.time;
}
//-----------------------------------------
int main() {
int n,i,a,b,m,T;
Node * buf;
scanf("%d",&T);
while(T--) {
scanf("%d%d",&n,&m);
for(i = 1 ; i <= n ; i ++) {
list[i].next = NULL;
opp[i].next = NULL;
}
while(m --) {
scanf("%d%d",&a,&b);
buf = (Node *)malloc(sizeof(Node)); //姝e浘
buf->to = b;
buf->next = list[a].next;
list[a].next = buf;
buf = (Node *)malloc(sizeof(Node)); //鍙嶅浘
buf->to = a;
buf->next = opp[b].next;
opp[b].next = buf;
}
memset(hash,false,sizeof(bool)*(n+1));
time = 0;
for(i = 1 ; i <= n ; i ++) { //鍏堢‘瀹氭椂闂存埑
if(!hash[i]) {
hash[i] = true;
dfs(i);
}
}
sort(hh+1,hh+1+n,cmp); //鎸夋椂闂存埑鎺掑簭
memset(hash,false,sizeof(bool)*(n+1));
newid = 0;
for(i = 1 ; i <= n ; i ++) { //鎶婄偣鍒嗘垚鍑犲潡
if(!hash[hh[i].idx]) {
hash[hh[i].idx] = true;
hh[hh[i].idx].newid = ++newid;
dfs2(hh[i].idx);
}
}
if(newid == 1) {
puts("0");
continue;
}
memset(hash,false,sizeof(bool)*(n+1));
memset(hashid,false,sizeof(bool)*(newid+1));
memset(gashid,false,sizeof(bool)*(newid+1));
for(i =1 ; i <= n ; i ++) { //鎵懼嚭鍧楃殑鍑哄害鍏ュ害
if(!hash[i]) {
hash[i] = true;
dfs3(i);
}
}
int cnt = 0;
int cnt1 = 0;
for(i = 1; i <= newid ; i ++) {
if(!hashid[i])
cnt ++;
if(!gashid[i])
cnt1 ++;
}
printf("%d\n",cnt>cnt1?cnt:cnt1);
}
return 0;
}
]]>
涓嶅悓鏃跺埢鎻愪氦涓嶉檺涓嶅悓鐨勭粨鏋溿傘傘傘傚涔犱簡銆傚搱鍝?br>姣旇禌鏃跺欐槸鍦ㄦ病鏈夊姙娉曠殑鏃跺欏張澶氫簡涓鎷?br>浠樹唬鐮?br>
#include "algorithm"
#include "time.h"
using namespace std;
int n,hash[25];
int A[25][25];
int res,maxdeep;
void fun() {
int sum = 0;
int a[25],b[25],la =0,lb =0;
for(int i =0 ; i < n ; i ++) {
if(hash[i]) a[la++] = i;
else b[lb++] = i;
}
for(int i = 0; i < la; i ++) {
for(int j =0 ; j < lb; j ++) {
sum += A[a[i]][b[j]];
}
}
if(sum > res) res = sum;
}
void dfs(int deep,int start) {
if(deep == maxdeep) {
fun();
return ;
}
for(int i =start; i < n ; i ++) {
if(!hash[i]) {
hash[i] ^= 1;
dfs(deep+1,i+1);
hash[i] ^= 1;
}
}
}
int main() {
int i,j;
while(scanf("%d",&n) == 1) {
for(i =0 ; i < n ; i ++) {
for(j =0 ; j < n ; j ++) {
scanf("%d",&A[i][j]);
}
}
res = 0;
if(n <= 19) {
maxdeep = n / 2;
memset(hash,0,sizeof(hash));
while(maxdeep) {
dfs(0,0);
maxdeep --;
}
} else {
int cnt = 100000;
srand(time(NULL));
memset(hash,0,sizeof(hash));
while(cnt --) {
hash[rand()%n] ^= 1;
fun();
}
}
printf("%d.\n",res);
}
return 0;
}
]]>
鍚戜笅鎼滀竴閬嶏紝鍚戜笂鎼滀竴閬?br>http://acm.hdu.edu.cn/showproblem.php?pid=1561
瀵規瘡涓涓妭鐐硅繘琛屼竴嬈¤儗鍖咃紝濂介鍟婏紝涓や釜DP鏍戝艦鍜岃儗鍖呯粨鍚堢殑
http://acm.hdu.edu.cn/showproblem.php?pid=1011
榪欓亾鏄綋騫寸渷璧涚殑鍘嬭醬棰橈紝浣嗘槸鎰熻鍜屼笂涓閬撳樊涓嶅錛屼竴鏍風殑闅懼害錛屽敮涓涓嶅悓鐨勫氨鏄繖涓槸鏃犲悜鍥?鎴戠敱浜庢濈淮鎯ф嬁鏉ュ綋鍗曞悜鍥句綔錛岀籂緇撲簡濂戒箙銆傘傘?
鏍戝艦+鑳屽寘+涓磋琛?br>
涓嬭竟鏄粠澶╂動絀洪棿閲屾壘鍑烘潵鐨勭粌涔?br>
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3201
http://acm.pku.edu.cn/JudgeOnline/problem?id=3107
http://acm.pku.edu.cn/JudgeOnline/problem?id=1655
http://acm.pku.edu.cn/JudgeOnline/problem?id=2378
http://acm.pku.edu.cn/JudgeOnline/problem?id=3140
http://acm.hdu.edu.cn/showproblem.php?pid=2242
http://acm.timus.ru/problem.aspx?space=1&num=1018
http://acm.pku.edu.cn/JudgeOnline/problem?id=1947
http://acm.pku.edu.cn/JudgeOnline/problem?id=2057
http://acm.pku.edu.cn/JudgeOnline/problem?id=2486
http://acm.pku.edu.cn/JudgeOnline/problem?id=1848
http://acm.pku.edu.cn/JudgeOnline/problem?id=2152
http://acm.hdu.edu.cn/showproblem.php?pid=1520
(絎竴涓爲褰P錛岄檮浠g爜)
鏈鏈綆鍗曠殑鏍戝艦DP
榪樺涔犱簡鐖跺瓙鍏勫紵緇撴瀯錛岀埥
struct Tree{
int father;
int child;
int brother;
int TakeParty;
int Not;
int Max() {
return TakeParty > Not ? TakeParty : Not;
}
void init() {
father = child = brother = Not = 0;
}
}tree[6001];
void dfs(int idx ) {
int child;
child = tree[idx].child;
while(child) {
dfs(child);
tree[idx].TakeParty += tree[child].Not;
tree[idx].Not += tree[child].Max();
child = tree[child].brother;
}
}
int main() {
int n,i,a,b;
while(scanf("%d",&n) == 1) {
for(i =1 ; i <= n ; i ++) {
scanf("%d",&tree[i].TakeParty);
tree[i].init();
}
while(scanf("%d%d",&a,&b),a+b) {
tree[a].father = b;
tree[a].brother = tree[b].child;
tree[b].child = a;
}
for(i = 1 ; i <= n ; i ++) {
if(!tree[i].father) {
dfs(i);
printf("%d\n",tree[i].Max());
break;
}
}
}
return 0;
}
]]>
]]>
浼氬姣忎竴閬撳仛榪囩殑棰樺仛涓涓畝鍗曠殑鍒嗘瀽錛屽鏋滄湁鍑洪敊鎴栬呬笉鐞嗚В鍙互浜庢垜浜ゆ祦
2104 Let the Balloon Rise Zhejiang Provincial Programming Contest 2004
鏁版嵁寰堝皬錛岄亶鍘嗕竴涓嬶紝鎵懼埌灝?+錛屾病鏈夌殑璇濆氨綆楁柊鐨?br>2105 Number Sequence Zhejiang Provincial Programming Contest 2004
鎵懼驚鐜妭錛屽紑hash[7][7]鏉ユ壘錛宧ash鍓嶄竴涓拰鍚庝竴涓?br>2106 Tick and Tick Zhejiang Provincial Programming Contest 2004
褰撳勾搴旇鏄噾鐗岄鍚э紝鏃墮棿鏄繛緇殑錛屼笉鑳戒竴縐掍竴縐掑垎寮鏉ヨ綆?br>鎴戞槸鏍規嵁棰樼洰鑱旂珛涓変釜涓嶇瓑寮忔柟紼嬶紝鐒跺悗瑙e嚭浜ら泦
2107 Quoit Design Zhejiang Provincial Programming Contest 2004
鏈榪戠偣瀵癸紝浜屽垎鐨勬濇兂錛屾嵁璇存暟鎹粨鏋勪功涓婂氨鏈夈傘傘?br>2108 Elevator Zhejiang Provincial Programming Contest 2004
綆鍗曟ā鎷熼錛屾眰鍑轟笂鍗囧拰涓嬮檷鐨勫眰鏁?br>2109 FatMouse' Trade Zhejiang Provincial Programming Contest 2004
鎸夋т環姣旀帓搴忓悗璐績
2110 Tempter of the Bone Zhejiang Provincial Programming Contest 2004
娣辨悳錛屽姞涓鍋舵у壀鏋?br>2111 Starship Troopers Zhejiang Provincial Programming Contest 2004
紲為錛屼笉浼氥傘傘傛嵁璇存槸鏍戝艦DP
5.13琛ュ厖錛氬綋鏃剁湅鐫鏄殑鍋氫篃涓嶆暍鍋氱殑紲為錛屽墠鍑犲ぉ瀛︿範浜嗙啛鎮夋爲褰P鍚庣粌涔犱簡鍑犻亾棰樼洰鍐嶆潵鍋氳繖棰樺彂鐜頒竴鐐歸兘涓嶉毦
鏍戝艦+鑳屽寘+涓磋琛ㄥ緩鍥懼彲浠ヨ交鏉続鎺夋棰?br>
2474 World Goes Round Zhejiang Provincial Programming Contest 2005
榪欓鏁版嵁閲忓ソ澶э紝n=10錛岃寰楀湪鍖楀笀澶ф瘮璧涚殑鏃跺欏仛榪囦竴涓?*3鐨勫叓鏁扮爜涔熸槸榪欐牱杞姩瑙勫垯錛屽綋鏃舵槸棰勫鐞嗙洿鎺ョ鎺夌殑
榪欓亾鐘舵佸お澶э紝鍙樿韓涓虹棰樹簡錛屼笉浼?br>
涓嶆槸姹傛渶浼樿В錛屾墍浠ユ垜鐚滄祴搴旇鏄瀯閫犲嚭涓縐嶆柟娉曡瀹冭漿鍒扮洰鏍囩姸鎬?br>//鎴戞兂鏄笉鏄彲浠ラ檷緇達紝鎷煎ソ鏈宸﹁竟鍜屾渶涓婅竟灝卞彲浠ラ檷涓緇翠簡銆傘?br>鑷充簬鎬庝箞鏋勯犳病鏈夋兂鍑烘潵銆傘傘傘?br>灝氭湭鍋氬嚭
2475 Benny's Compiler Zhejiang Provincial Programming Contest 2005
鍒ゆ柇鏈夊悜鍥炬垚鐜紝鐢ㄦ嫇鎵戞帓搴忥紝閿欎簡N閬嶏紝鎴戦兘鎬鐤戞槸涓嶆槸鎴戠殑鎷撴墤鍐欓敊浜嗐傘?br>鍚庢潵璇曚簡涓涓嬪師鏉ユ湁鎭跺績鏁版嵁錛孉i == Bi鐨勬椂鍊欒繖鏍風殑鏁版嵁涓嶈璁$畻錛屼笉鐒跺氨鑷繁鎴愮幆浜嗐?br>2476 Total Amount Zhejiang Provincial Programming Contest 2005
妯℃嫙涓涓嬶紝閮戒笉鐢ㄥぇ鏁板姞娉曪紝鐩存帴鐢╨ong long灝卞浜嗭紝杈撳嚭鐨勬椂鍊欏垎孌佃緭鍑?br>2477 Magic Cube Zhejiang Provincial Programming Contest 2005
棰樼洰璇翠笉瓚呰繃5姝ワ紝鍙互鐢ㄨ凱浠e姞娣辨悳绱紝鍏跺疄棰樼洰鎰忔濆緢鐩寸櫧錛屽氨鏄繖閬撻鐩緢闅炬ā鎷熴?br>鎶婇瓟鏂圭殑杞ā鎷熷嚭鏉ヨ繖棰樼洰涔熷氨鍋氬嚭鏉ヤ簡銆傘?br>鎴戞妸姣忎竴縐嶈漿閮借綆楀嚭鏉ュ啓榪涜〃閲岋紝鐒跺悗鎸夌収榪欎釜琛ㄨ漿灝監K浜?br>2478 Encoding Zhejiang Provincial Programming Contest 2005
閬嶅巻涓閬嶆瘮杈冨綋鍓嶅瓧絎﹀拰鍓嶄竴涓瓧絎﹀氨濂?br>2479 Cover the Rectangular Ground Zhejiang Provincial Programming Contest 2005
浠庢渶宸︿笅瑙掔殑鐐瑰紑濮媎fs錛屾瘡嬈″厛鍒ゆ柇鑳戒笉鑳芥斁涓婏紝鐒跺悗鎵懼嚭褰撳墠鏈宸︿笅瑙掔殑鐐瑰啀dfs
榪欐牱寰堟毚鍔涖傘傛渶鍧忕殑鎯呭喌綆椾笉鏉ワ紝澶ф鏈?0!嬈°傘傘傛垜鏅曪紝涓鐩碩LE
鍚庢潵鎴戣瘯浜嗕笅鏁版嵁錛屽掓槸鏄垜鐨勭▼搴忕湡鐨勬晥鐜囧緢浣庯紝榪樻槸鍙湁涓浜涙暟鎹兘璺戜笉鍑?br>緇忚繃澶氭WA鍜孴LE鐨勬祴璇曞彂鐜板彧瑕佹湁瑙e緱鏁版嵁鎴戦兘鑳借窇鍑烘潵錛屾棤瑙g殑灝辯洿鎺ユ悳鍒版浜?br>浜庢槸鎴戝畾涔夊鏋滄繁鎼滄鏁拌秴榪?00000灝辯洿鎺ヨ煩鍑猴紝鏃犺В
緇撴灉灝盇C浜嗐傘傘傘傛晥鐜囪繕寰堥珮錛岀敱浜庡唴瀛樺師鍥犳媿鍦ㄧ浜?br>鍞夛紝姣旇禌鐨勬椂鍊欏鏋滆兘榪欐牱AC鐨勮瘽灝卞おRP浜嗐傘傘?br>銆傘傛眰姝hВ銆傘?br>2480 Simplest Task in Windows Zhejiang Provincial Programming Contest 2005
鏁版嵁閲忓皬錛岀洿鎺ユ按鎺夛紝浠庡悗寰鍓嶆瘮杈僨or(i = n- 1; i >= 0 ; i --)錛屾壘鍒扮鍚堢殑璺沖嚭錛屾渶鍚庤緭鍑轟笅鏍?br>2481 Unique Ascending Array Zhejiang Provincial Programming Contest 2005
鎺掑簭鍚庤緭鍑?br>
2736 Daffodil number Zhejiang Provincial Programming Contest 2006, Preliminary
姘撮
2737 Occurrence Zhejiang Provincial Programming Contest 2006, Preliminary
棰樼洰鐪嬫竻妤氬悗鏆村姏姣旇緝涔呭彲浠?br>2738 The Kth BST Zhejiang Provincial Programming Contest 2006, Preliminary
鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟婂晩鍟?br>鎺ㄤ簡涓涓笅鍗堝晩銆傘傘傘傘傜珶鐒禬A銆傘傘傘傘傛瀬搴﹂儊闂楓傘傘傘傘?br>
鍚冮キ鍥炴潵緇堜簬AC浜嗐傘傘傘傚啀閮侀椃錛屽師鏉ユ槸鎴戝BST鐨勭悊瑙f湁璇紝鍚庢潵綰摜綰犳浜嗭紝灝辮繖鏍烽櫡鍏ヤ簡璇尯N涔呫傘傘傘備笉鍊煎緱鍟娿傘傘?br>2739 Color Quantization Zhejiang Provincial Programming Contest 2006, Preliminary
灝氭湭鍋氬嚭
2740 Message System Zhejiang Provincial Programming Contest 2006, Preliminary
鐢ㄥ茍鏌ラ泦鍋氾紝鍒ゆ柇鏄爲榪樻槸媯灄榪樻槸鍥?br>
2741 Offside Zhejiang Provincial Programming Contest 2006, Preliminary
寰堣剳孌嬬殑妯℃嫙棰橈紝鎴戝嵈鑴戞畫鐨勯敊浜哊緙栥傘傘傘傘?br>2742 Toy Bricks Zhejiang Provincial Programming Contest 2006
灝氭湭鍋氬嚭
2743 Bubble Shooter Zhejiang Provincial Programming Contest 2006
鍏坒oldfill涓涓嬶紝鎶婅繛璧鋒潵鐨刪ash鎺夛紝鐒跺悗浠庢渶涓婅竟姣忎釜鐐瑰紑濮媐oldfill錛岀湅榪樻湁鍑犱釜鐣欎笅
2744 Palindromes Zhejiang Provincial Programming Contest 2006
浠庡洖鏂囦覆鐨勬ц川涓婃壘瑙勫緥錛屾瘡涓偣鍚戝乏鍙沖歡闀挎暟鍥炴枃涓蹭釜鏁?br>2745 01-K Code Zhejiang Provincial Programming Contest 2006
鎭跺績鐨勬帹鎺ㄩ錛屾垜鐨勬柟娉曚竴瀹氫笉鏄渶綆鍗曠殑錛屾垜寮浜嗗洓緇存暟緇勮繕杞Щ鐘舵?br>鍒嗗埆瀛樼殑鏄細
dp[0鍜?鐩稿樊鍑犱綅錛屾渶楂樺埌杈捐繃錛屾渶浣庡埌杈捐繃錛宯]
榪欐槸寰堢儌鐨勬柟娉曪紝鎴戞兂浜嗗緢涔呮墠鎯沖嚭鏉ワ紝瀹炲湪鎯充笉鍑烘洿濂界殑浜?br>2746 Rank the Teams Zhejiang Provincial Programming Contest 2006
灝氭湭鍋氬嚭
2747 Paint the Wall Zhejiang Provincial Programming Contest 2006
紱繪暎鍖?hash鍗沖彲錛屾湁鐐規毚鍔涳紝姝hВ鏄嚎孌墊爲
2748 Free Kick Zhejiang Provincial Programming Contest 2006
鎭跺績鐨勯泦鍚堥錛屽紑濮嬫病鏈夌湅鍒皊traight "WALL"鏋勯犲嚭涓縐嶆渶浼樿В錛岀粨鏋淲A浜?br>鏀逛簡涔嬪悗涔熶竴鐩碬A錛岄敊浜嗘棤鏁版鍚庝慨鏀逛簡涓嬫眰澶硅鐨勬柟娉曪紝鏈潵鏈塧tan錛屾敼鎴恆cos绔熺劧AC浜唦~
鎬濊礬錛?br>鍏堟眰鍑烘病鏈墂all鏃跺欑殑澶硅錛岀劧鍚庡噺鍘誨畧闂ㄥ憳鐨勮寖鍥達紝鍐嶆牴鎹墿涓嬬殑瑙掑害鏉ユ眰鍑轟漢鏁?br>2749 Polarium Zhejiang Provincial Programming Contest 2006
寰堝ソ鐜╃殑涓閬撻鐩紝鏈変漢绔熺劧鑳絋LE 1000+嬈★紝鑰屼笖榪炵畫浜嗗崐騫淬傘侽rz涓涓?br>鎴戣窇鐨勬瘮杈冩毚鍔涳紝鏁堢巼鎸轟綆鐨?br>鎬濊礬錛?br>棣栧厛鏋氫婦鏈鍚庣殑絳旀錛氬嵆姣忚鐨勯粦鐧芥儏鍐?br>鐒跺悗鏍規嵁榪欎釜絳旀閲嶆柊鐢誨嚭涓寮犲湴鍥撅紝姣忎釜鑳借蛋鐨勭偣(闄や簡杈圭晫鐐?閮藉彧鑳借蛋涓斿彧璧頒竴嬈★紝鐒跺悗榪涜DFS
璧板埌緇堢偣鐨勬椂鍊欏垽鏂笅鏄惁絎﹀悎鏉′歡灝盇C浜?寮濮嬬殑鏃跺欐垜鍏堝垽鏂蛋瀹岀偣鍐嶅垽鏂渶鍚庝竴鐐規槸鍚︽槸緇堢偣錛岀粨鏋滆秴鏃朵簡)
2750 Idiomatic Phrases Game Zhejiang Provincial Programming Contest 2006
鏋勯犲嚭鏈鐭礬錛屾瘡涓覆鐨勬渶鍏?涓拰鏈鍚?涓氨鏄搗鐐瑰拰緇堢偣錛?^16涓偣錛?000鏉¤礬
鎴戠敤閭繪帴琛?鍫?bfs鍔犻熶紭鍖?0ms
2849 Attack of Panda Virus Zhejiang Provincial Programming Contest 2007
鎸塴evel鏈灝忓拰type鏈灝忕殑浼樺厛闃熷垪BFS涓涓?br>2850 Beautiful Meadow Zhejiang Provincial Programming Contest 2007
姘撮
2851 Code Formatter Zhejiang Provincial Programming Contest 2007
娉ㄦ剰鍑虹幇鍦ㄥ悗杈圭殑'\t'
2852 Deck of Cards Zhejiang Provincial Programming Contest 2007
DP,涓夌淮(姣忕粍鐗岀殑浠峰?鍔犳粴鍔ㄦ暟緇勮兘杞繪澗AC
2853 Evolution Zhejiang Provincial Programming Contest 2007
鐭╅樀棰橈紝鏈夌偣鍗℃椂闂?br>鎴戠殑緇撴瀯浣撴ā鏉?00*200寮涓嶄笅錛屼簬鏄垜鍗囩駭浜嗘垜鐨勬ā鏉匡紝鎹簡涓涓叏灞鐭╅樀
棰樼洰鎰忔濈悊瑙e濂椾釜鐭╅樀妯℃澘灝辮兘榪囦簡
2854 Fish and Her Bowl Zhejiang Provincial Programming Contest 2007
灝氭湭鍋氬嚭
2855 Google Map Zhejiang Provincial Programming Contest 2007
鐢ㄦ墍緇欏叕寮?閫掑綊瑙e喅
2856 Happy Life Zhejiang Provincial Programming Contest 2007
鏃犺浠涔堢姸鎬侀兘涓瀹氳兘鏋勯犲嚭鍙瑙g殑錛屾墍浠ュ彧瑕亀hile(1)鎶婂拰灝忎簬0鐨勯偅琛屽彉鎹㈢鍙鳳紝涓鐩撮兘婊¤凍鏉′歡
2857 Image Transformation Zhejiang Provincial Programming Contest 2007
姘撮
2965 Accurately Say "CocaCola"! The 5th Zhejiang Provincial Collegiate Programming Contest
鏁版嵁灝忥紝鏆村姏涓嬪氨濂斤紝鏁版嵁澶х殑璇濆彲浠ユ暟瀛﹀綊綰蟲垨鑰呮毚鍔涚湅涓嬭寰?a >
2966 Build The Electric System The 5th Zhejiang Provincial Collegiate Programming Contest
鍌誨偦鐨勬渶灝忔爲
2967 Colorful Rainbows The 5th Zhejiang Provincial Collegiate Programming Contest
姝hВ璇存槸鍗婂鉤闈氦
鎴戞槸鐢ㄤ竴涓爤錛屽厛鎸塨浠庡ぇ鍒板皬鎺掑簭錛屽鏋滅劧鍚庨亶鍘嗕竴涓嬶紝鑳藉嚭鐜扮殑灝辨斁榪涙爤閲岋紝鑳芥妸鍓嶉潰鐨勮鐩栨帀灝辨妸鏍堥噷鐨勭嚎孌墊嬁鍑?br>姝e崐杞達紝璐熷崐杞村仛涓ゆ錛屽啀澶勭悊涓涓嬪皬緇嗚妭灝卞ソ浜?br>2968 Difference Game The 5th Zhejiang Provincial Collegiate Programming Contest
鎴戝厛鎶夾鏁扮粍鍜孊鏁扮粍鐨勬暟鍏ㄩ儴淇濆瓨C鏁扮粍閲岋紝鐒跺悗鎺掑簭
鍐嶉亶鍘咰鏁扮粍,i = 0 to n*2
i宸﹁竟鐨勪負B,鍙寵竟鐨勪負A錛岀劧鍚庣畻鍑哄埌杈捐繖涓姸鎬丄鍒癇鐨勪釜鏁癆B鍜孊A
鏍規嵁榪欎袱涓暟綆楀嚭鏈灝忕殑鑺辮垂錛孹 = Min(AB,BA)錛孻 = |AB - BA|錛孋i = X * Y* (Y - 1)錛?br>濡傛灉姣攃灝忕殑璇濇棫鏇存柊涓涓媟es
濡傛灉鏈鍚庝竴嬈¢兘娌℃洿鏂板埌寰楄瘽灝辨槸鏈鍚庣殑絳旀涓瀹氭槸璐熺殑
鎵浠鍜孊鎺掑簭涓嬫牴鎹甤璐績寰楀埌絳旀
2969 Easy Task The 5th Zhejiang Provincial Collegiate Programming Contest
easy task
2970 Faster, Higher, Stronger The 5th Zhejiang Provincial Collegiate Programming Contest
sort
2971 Give Me the Number The 5th Zhejiang Provincial Collegiate Programming Contest
妯℃嫙涓?a >
2972 Hurdles of 110m The 5th Zhejiang Provincial Collegiate Programming Contest
鎸夊墿涓嬬殑鑳介噺DP
2973 Intelligent Pouring Robot The 5th Zhejiang Provincial Collegiate Programming Contest
瓚呯儲鐨勬ā鎷熼
灝氭湭鍋氬嚭
2974
Just Pour the Water
The 5th Zhejiang Provincial Collegiate Programming Contest
鏆村姏鍔犲驚鐜妭鑳借繃錛屾瑙f槸鐭╅樀錛?br>K == 0鐨勬椂鍊欏父甯鎬細琚拷鐣ワ紝澶勭悊涓涓嬪氨濂?br>
2975
Kinds of Fuwas
The 5th Zhejiang Provincial Collegiate Programming Contest
n^3鐨勭畻娉曪紝鏋氫婦浠繪剰涓よC(2,n)錛岄亶鍘嗗垪n錛屾壘鍒扮浉鍚岀殑涓暟x錛宺es+=(x-1)*x/2;
2976
Light Bulbs
The 5th Zhejiang Provincial Collegiate Programming Contest
鏋氫婦騫抽潰涓婃瘡涓涓偣鍙栨渶澶у?br>
3202
Second-price Auction
The 6th Zhejiang Provincial Collegiate Programming Contest
3203
Light Bulb
The 6th Zhejiang Provincial Collegiate Programming Contest
3204
Connect them
The 6th Zhejiang Provincial Collegiate Programming Contest
3205
Derivative
The 6th Zhejiang Provincial Collegiate Programming Contest
3206
Disaster Area Reconstruction
The 6th Zhejiang Provincial Collegiate Programming Contest
320780ers' Memory
The 6th Zhejiang Provincial Collegiate Programming Contest
3208Reforestation
The 6th Zhejiang Provincial Collegiate Programming Contest
3209Treasure Map
The 6th Zhejiang Provincial Collegiate Programming Contest
3210
A Stack or A Queue?
The 6th Zhejiang Provincial Collegiate Programming Contest
3211
Dream City
The 6th Zhejiang Provincial Collegiate Programming Contest
3212
K-Nice
The 6th Zhejiang Provincial Collegiate Programming Contest
]]>
涓嬭竟鍑犻亾鏄畬緹庡尮閰嶇殑棰樼洰
http://info.zjfc.edu.cn/acm/problemDetail.aspx?pid=1222
璧よ8瑁哥殑瀹岀編鍖歸厤錛屽浘閮藉緩濂戒簡
http://acm.hdu.edu.cn/showproblem.php?pid=1533
榪欎釜寤哄浘寰堝鏄?br>http://acm.hdu.edu.cn/showproblem.php?pid=2282
榪欎釜闇瑕佸緩鍥?br>
涓嬭竟鏄痟ttp://acm.hdu.edu.cn/showproblem.php?pid=1533
鐨凙C浠g爜
//浜屽垎鍥劇殑瀹岀編鍖歸厤錛孠uhn錛峂unkras綆楁硶
#include<stdio.h>
#include<math.h>
#include<string>
#define MAXN 101
//////////////////////////////////////////////////////////////////////////
#define inf 0x7FFFFFFF
int edge[MAXN][MAXN];
int match[MAXN];
bool hash[MAXN][MAXN];
bool xhash[MAXN],yhash[MAXN];
char map[MAXN][MAXN];
int min(int a,int b){return a>b?b:a;}
int max(int a,int b){return a>b?a:b;}
void Scanf(int n,int m,int &l);
bool dfs(int p,int n)//鎵懼騫胯礬寰?/span>
{
int i;
for(i=0;i<n;i++)
{
if(!yhash[i] && hash[p][i])
{
yhash[i] = true;
int t = match[i];
if(t == -1 || dfs(t,n))
{
match[i] = p;
return true;
}
if(t != -1)
xhash[t] = true;
}
}
return false;
}
void show(int id,int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(id)
printf("%d ",edge[i][j]);
else
printf("%d ",hash[i][j]);
}
puts("");
}
puts("");
}
void KM_Perfect_Match(int n)
{
int i,j;
int xl[MAXN],yl[MAXN];
for(i=0;i<n;i++)
{
xl[i] = 0;
yl[i] = 0;
for(j=0;j<n;j++)
xl[i] = max(xl[i],edge[i][j]);
}
bool perfect = false;
while(!perfect)
{
for(i=0;i<n;i++)//鐜伴樁孌靛凡緇忓尮閰嶇殑璺?/span>
{
for(j=0;j<n;j++)
{
if(xl[i] + yl[j] == edge[i][j])
hash[i][j] = true;
else
hash[i][j] = false;
}
}
// show(0,n);
int cnt = 0;
memset(match,-1,sizeof(match));
for(i=0;i<n;i++)//褰撳墠鐨勫浘鏄惁鑳藉叏閮ㄥ尮閰?/span>
{
memset(xhash,false,sizeof(xhash));
memset(yhash,false,sizeof(yhash));
if(dfs(i,n))
cnt ++;
else
{
xhash[i] = true;
break;
}
}
if(cnt == n)//娌℃湁澧炲箍璺緞
perfect = true;
else
{
int ex = inf;
for(i=0;i<n;i++)
{
for(j=0;xhash[i] && j<n;j++)
{
if(!yhash[j])
ex = min(ex,xl[i] + yl[j] - edge[i][j]);//鎵懼埌涓鏉℃病寤虹殑杈圭殑鏈灝忓?/span>
}
}
for(i=0;i<n;i++)//鏍規嵁榪欎釜杈規潵榪涜鏉懼紱
{
if(xhash[i])
xl[i] -= ex;
if(yhash[i])
yl[i] += ex;
}
}
}
}
int main()
{
int n,m,l;
while(scanf("%d%d",&n,&m))
{
if(n == 0 && m == 0)
break;
Scanf(n,m,l);
KM_Perfect_Match(l);
int mindis = 0;
for(int i=0;i<l;i++)
mindis += edge[match[i]][i];
printf("%d\n",-mindis);
}
return 0;
}
//璇誨叆寤哄浘
void Scanf(int n,int m,int &l)
{
int i,j,l1,l2;
struct Point{
int x,y;
}MAN[MAXN],HOUSE[MAXN];
l1 = l2 = 0;
for(i=0;i<n;i++)
{
scanf("%s",map[i]);
for(j=0;j<m;j++)
{
if(map[i][j]=='m')
{
MAN[l1].x = i;
MAN[l1].y = j;
l1 ++;
}
else if(map[i][j]=='H')
{
HOUSE[l2].x = i;
HOUSE[l2].y = j;
l2 ++;
}
}
}
l = l1;
for(i=0;i<l;i++)
for(j=0;j<l;j++)
edge[i][j] = -abs(MAN[i].x - HOUSE[j].x) - abs(MAN[i].y - HOUSE[j].y);
}
]]>
]]>
1062* 鏄傝吹鐨勮仒紺?nbsp;鏋氫婦絳夌駭闄愬埗+dijkstra
1087* A Plug for UNIX 2鍒嗗尮閰?br>1094 Sorting It All Out floyd 鎴?nbsp;鎷撴墤
1112* Team Them Up! 2鍒嗗浘鏌撹壊+DP
1125 Stockbroker Grapevine FLOYD
1135 Domino Effect 鏈鐭礬
1149* PIGS 緗戠粶嫻?br>1161* Walls floyd
1201 Intervals 宸垎綰︽潫
1236* Network of Schools 寮鴻仈閫?br>1251 Jungle Roads MST
1273 Drainage Ditches 鏈澶ф祦
1274 The Perfect Stall 2鍒嗗尮閰?br>1275* Cashier Employment 宸垎綰︽潫
1325 Machine Schedule 2鍒嗗尮閰?鏈灝忕偣瑕嗙洊)
1364 King 宸垎綰︽潫
1422 Air Raid 2鍒嗗尮閰?br>1459 Power Network 緗戠粶嫻?br>1466 Girls and Boys 2鍒嗗浘(鏈澶х嫭绔嬪洟)
1469 COURSES 2鍒嗗尮閰?br>1502 MPI Maelstrom floyd
1511* Invitation Cards 鏈鐭礬
1637* Sightseeing tour 娣峰悎鍥炬鎷夊洖璺?/span>-緗戠粶嫻?br>1716 Integer Intervals 宸垎綰︽潫
1724* ROADS 鏈鐭礬-鎷嗙偣
1780* Code 嬈ф媺鍥炶礬
1789 Truck History 鏈灝忕敓鎴愭爲
1797 Heavy Transportation 鏈灝忕敓鎴愭爲
1847 Tram 鏈鐭礬
1904* King's Quest 寮鴻仈閫?/span>
1949 Chores 鏈鐭礬
2060 Taxi Cab Scheme 2鍒嗗尮閰?br>2075 Tangled in Cables 鏈灝忕敓鎴愭爲
2112 Optimal Milking 緗戠粶嫻?br>2125 Destroying The Graph 鏈灝忓壊
2135 Farm Tour 璐圭敤嫻?br>2139 Six Degrees of Cowvin Bacon floyd
2226 Muddy Fields 2鍒嗗尮閰?br>2230 Watchcow 嬈ф媺鍥炶礬
2239 Selecting Courses 2鍒嗗尮閰?br>2267* From Dusk till Dawn or: Vladimir the Vampire 鏈鐭礬
2289 Jamie's Contact Groups 緗戠粶嫻?/span>
2337 Catenyms 嬈ф媺閫氳礬
2349 Arctic Network 鏈灝忕敓鎴愭爲
2369 Genealogical tree 鎷撴墤搴?br>2387 Til the Cows Come Home 鏈鐭礬
2391* Ombrophobic Bovines 鏈澶ф祦
2394 Checking an Alibi 鏈鐭礬
2396* Budget 緗戠粶嫻?br>2421* Constructing Roads 鏈灝忕敓鎴愭爲
2446 Chessboard 2鍒嗗尮閰?br>2455 Secret Milking Machine 緗戠粶嫻?br>2457 Part Acquisition 鏈鐭礬
2472 106 miles to Chicago 鏈鐭礬
2485 Highways 鏈灝忕敓鎴愭爲
2516 Minimum Cost 璐圭敤嫻?br>2536 Gopher II 2鍒嗗尮閰?br>2553* The Bottom of a Graph 寮鴻仈閫?br>2570 Fiber Network floyd
2584 T-Shirt Gumbo 緗戠粶嫻?br>2594* Treasure Exploration 2鍒嗗尮閰?br>2723 Get Luffy Out 2-sat
2724 Purifying Machine 2鍒嗗尮閰?br>2728 Desert King 鏈浼樻瘮渚嬬敓鎴愭爲
2749* Building roads 2-sat
2762 Going from u to v or from v to u? 寮鴻仈閫?br>2949* Word Rings 宸垎綰︽潫
2983 Is the Information Reliable? 宸垎綰︽潫
2987 Firing 鏈灝忓壊(姹傝В姝g‘鎬?/span>??)
3020 Antenna Placement 2鍒嗗尮閰?br>3041 Asteroids 2鍒嗗尮閰?br>3072* Robot 鏈鐭礬
3160 Father Christmas flymouse 寮鴻仈閫?br>3164 Command Network 鏈灝忔爲褰㈠浘
3169 Layout 宸垎綰︽潫
3177 Redundant Paths 鍙岃仈閫氬垎閲?br>3189 Steady Cow Assignment 緗戠粶嫻?br>3204 Ikki's Story I - Road Reconstruction 鏈澶ф祦
3207 Ikki's Story IV - Panda's Trick 2鍒嗗浘
3216 Repairing Company 2鍒嗗尮閰?br>3228 Gold Transportation 緗戠粶嫻?br>3255 Roadblocks 鏈鐭礬
3259 Wormholes 鏈鐭礬
3268 Silver Cow Party 鏈鐭礬
3275 Ranking the Cows floyd
3281 Dining 鏈澶ф祦
3308 Paratroopers 鏈灝忓壊
3310 Caterpillar
3311 Hie with the Pie floyd
3328 Cliff Climbing 鏈鐭礬
3343 Against Mammoths 2鍒嗗尮閰?br>3352 Road Construction 妗?br>3439 Server Relocation 鏈鐭礬
3463 Sightseeing 鏈鐭礬
3469 Dual Core CPU 鏈灝忓壊
3487 The Stable Marriage Problem 紼沖畾濠氬Щ
3522 Slim Span 鏈灝忕敓鎴愭爲
3594 Escort of Dr. Who How 鏈鐭礬
3615 Cow Hurdles 鏈鐭礬
3623 Wedding 2-sat
3653 Here We Go(relians) Again 鏈鐭礬
3659* Cell Phone Network 鏈灝忔敮閰嶉泦
3660 Cow Contest 鎷撴墤
3662* Telephone Lines 鏈鐭礬
3678 Katu Puzzle 2-sat
3683* Priest John's Busiest Day 2-sat姹傝В
3687 Labeling Balls 宸垎綰︽潫 鎴?nbsp;鎷撴墤
3692 Kindergarten 2鍒嗗尮閰?br>3694 Network 鏃犲悜鍥劇緝鐐?br>
灝辨妸涓婇潰鐨勪綔涓哄浘璁哄涔犵殑棰樼洰浜?/span>~
]]>2008-10-16 10:07:01
Accepted
1000
0MS
0K
105 B
C
sh菐宕?/font>
鏈潵鎯沖悜yifenfei澶уぇ涓鑸紝鍦ㄧ邯蹇墊棩杈懼埌1000鐨凙C閲?br>鍙儨鍔涗笉浠庡績錛屼粖鏃ユ瘮璧涚敋澶氾紝鍒板湪鍏朵粬OJ涓婂埛棰橈紝hdoj涓婄殑姘撮鍙堟笎灝戯紝鐑︿簨緙犺韓錛屾棤娉曞畬鎴愬崐騫?000鐨勭洰鏍噡~鍙ソ鐢?00鏉ヤ唬鏇夸竴涓?...XD
鍘誨勾10鏈?6鍙鳳紝A浜嗙涓閬揂+B,鎴戠殑AC鐢熸動涔熸鏄紑濮嬩簡
浠婂ぉ鏄?鏈?6鍙鳳紝姝eソ鍗婂勾錛屾彁浜や簡涓夐亾姘撮銆傘傘傚湪HDU鐨凙C閲忚揪鍒頒簡900.銆傘?br>
5
sh菐宕?/font>
A New Start~錛?/td>
900
1888
47.67%
閬ユ兂鍗婂勾鍓嶆帴瑙CM鍚?澶╁ぉ璺戞満鎴?鏈烘埧涓嶅紑闂ㄥ氨緗戝惂,榪樻浘緇忔湁涓鏅氬湪緗戝惂閫氳繃瀹?絎簩澶╅泦璁槦鐨勫闀夸滑鐪嬪埌鎴戝崐澶滅殑鎻愪氦鐨勮褰曚互涓烘垜甯︿簡絎旇鏈?N鍧楃數鏉匡紝鍚庢潵鐭ラ亾鎴戞槸鍦ㄧ綉鍚ч氬AC鐨勶紝鏇村姞鎯婅錛屽ぉ娑繕鏇懼嚭浜嗕竴閬?a >sh菐宕?OrOrOrOrz鐨勯鐩傛彁鍒癆cmer in HDU-ACM team are ambitious, especially sh菐宕? he can spend time in Internet bar doing problems overnight.鍝堝搱錛岀瑧姝繪垜浜嗐傘傝繖棰樻垜鐗瑰湴鍐欎簡寰堝浼樺寲鍒峰埌浜嗙涓31MS錛屽搱鍝堬紝鍒漢鎭愭曞緢闅捐秴瓚婁簡鈺?鈺痏鈺?鈺?br>
榪欎釜瀛︽湡寮濮嬪悗lcy鏁欑粌灝卞父甯告彁閱掓垜瑕佽姳涓孌墊椂闂村幓鏀誨厠涓闂ㄧ畻娉曪紝浠庢渶寮濮嬬殑鏈灝忕敓鎴愭暟錛屾渶鐭礬錛屽埌浜嗘爲鐘舵暟緇勶紝瀛楀吀鏍戯紝紱繪暎鍖栵紝榪欏嚑涓槦鏈熷張鏈夋悶瀹氬浘璁虹殑鐩爣錛屽彲浠ヨ娌℃湁lcy鏁欑粌鐨勭潱淇冩垜榪涙娌℃湁榪欎箞鏄庢樉錛屾瘯绔熶笉瀛︾畻娉曞彧鍒鋒按棰樼殑璇濇槸娌℃湁鎻愰珮鐨勩傘?br>
鎺ョ潃灝辨槸榪涢槦錛屾斁寮冧簡涓鍒囨椂闂碅C錛屽瘨鍋囨洿鏄病鏈夊嚭鍘葷帺榪囷紝涓婁釜瀛︽湡閮芥槸鍦ㄨ嚜宸卞仛棰橈紝榪欎釜瀛︽湡灝遍兘鏄湪PK錛孭K姣斿仛棰樺ソ鐜╁浜嗭紝鑳藉拰楂樻墜鍒囩錛屾寫鎴樹竴浜涘鉤鏃朵笉鏁㈠仛鐨勯鐩紝榪愭皵濂界殑璇濓紝RP鐖嗗彂涓嬭繕鑳芥嬁鍒板墠鍑犵殑鍚嶆鐐涓鐣傘?br>澶уぇ灝忓皬緇忓巻榪囦簡寰堝鍦篜K錛岄泦璁槦鍐呴儴鐨勫崟浜篜K灝辨湁4鍦猴紝榪樻湁鍑犱箮姣忔棩閮芥湁鐨勬牎澶栨瘮璧涳紝鐪熸槸璧涗簨澶氬彂鏈熴傘備笂涓槦鏈熺粏綆椾竴涓嬭嚦灝戝仛浜?鍦烘瘮璧涘惂~~榪欎釜姣旇禌瀵嗗害铏界劧寰堥珮錛屼絾鏄漢涔熻秺姣旇秺鍏村~~鍝堝搱鈫?^ω^)鈫?br>
鍓嶅嚑涓槦鏈熷拰紱忓窞澶у鐨凙edkyCion鍚戣佸笀鐢寵鍑烘瘮璧涳紝鎴戜粠鏉ラ兘娌″嚭榪囷紝鏈夌偣灝忕揣寮狅紝娌℃兂鍒拌佸笀涓涓嬪氨絳斿簲浜嗭紝瀹氬湪5鏈?鍙風殑鑰佽彍楦熸澂緇欐垜浠嚭錛屾殏瀹?棰橈紝姣忎漢鍥涢錛屽埌鐜板湪鎴戝彧鍑轟簡涓ら鍗婏紝榪欒繘搴﹀お鎱㈤兘鏈夌偣涓嶅ソ鎰忔濅簡銆傘傘傚墠鍑犲ぉ鍙堟湁紱忓窞甯堣寖澶у瑕佹眰鎴戜滑鍑洪錛岃佸笀鎶婁換鍔′氦緇欎簡鎴戜滑錛屼害綰烽錛屽懆澶╂動錛岀邯鍝ュ拰鎴戯紝鍝堝搱錛屾垜鍒嗛厤鍒頒袱閬撴ā鎷熼鍜屼竴閬撴悳绱㈤銆傘傘傝繖涓殑璇?鏈?鍙峰墠榪樻湁5閬撻鐩鍑恒傘傚彲鏈夌殑濂藉繖浜?br>鎺ヤ笅鏉ヨ繕鏈夋湡涓冭瘯錛屽畞娉㈢殑鍏ㄥ浗閭璇瘋禌銆傛墍浠ヤ粖澶╂櫄涓婃垜鍙堥夋嫨閫氬(¯錒?#175;錛夊彛姘達紝浜夊彇鎶婇鐩刀鍑烘潵錛岃繕鏈夊涔犱笅鐗╃悊銆傘傝瘽璇村畞娉㈤個璇瘋禌浜?4~26鍙鳳紝鎴戜滑鐨勮嫳璇拰鏁板鑰冭瘯涔熷湪榪欏嚑澶╋紝鍝堝搱錛岄冭繃涓鍔紝銆傘傘?br>
鎺ヤ笅鏉ヨ繖孌靛繖紕岀殑鏃舵湡娓¤繃涔嬪悗錛?鏈堝張鍙互寮濮嬬柉鐙傜殑AC浜唦~鍓嶄簺鏃ュ瓙鍋氫簡USACO錛岃秴綰уソ鐜╋紝鏈夌偣鍍忛棷鍏蟲ā寮忕殑銆傝繃浜嗕竴浜涢鍚庡紑鏀鵑毦搴︽洿楂樼殑棰樼洰鍜岀畻娉曠粰浣犲涔爚~鏄ㄥぉ鍒氬垰鍒涘埌絎簩鍏籌紝涓鍏辨湁鍏叧錛屽埌鍚庤竟榪炲緢澶歸f鐨勯閮藉嚭鏉ヤ簡錛岃秴鏈夋寫鎴橈紝鎴戜竴瀹氳鍏ㄩ儴鏀誨厠銆傘?br>閬囧埌榪欎釜OJ鍚庢垜鏇劇粡騫繪兂浠ュ悗鑳藉啓涓涓柊妯″紡鐨凮J錛屽叾瀹炲氨鏄熼壌USACO錛屽崌綰ф墦鎬ā寮忥紝鍝堝搱錛屾墦鎬?A瀹岄)寰楀埌緇忛獙鍊鹼紝鍙互鍘諱拱鎶鑳戒功(綆楁硶)錛岀劧鍚庡紑鏀炬柊棰樼洰錛屼竴綰т竴綰ф潵錛岃繕鏈夊緢澶氶檮灞炲姛鑳姐傘傘傚綋鐒惰繖鍙槸鍒濇鍋囨兂鑰屽凡銆傘傛垜鐜板湪闄や簡AC浠涔堥兘涓嶄細錛屾洿浣曡皥鍋氫釜鏂癘J銆傘備笉榪囨棦鐒墮夋嫨浜咥C錛屽繀瀹氫細鏀懼純鍏朵粬寰堝涓滆タ錛屾墍浠ユ垜鍙互璇存槸鑳屾按涓鎴橈紝鏀懼純鍏朵粬涓闂ㄥ績鎬滱C錛屼竴瀹氳鍦ㄨ繖鏂歸潰鎷垮埌涓涓潪甯稿ソ鐨勬垚緇╂墠瀵瑰緱璧鋒垜鐨勫ぇ瀛﹀洓騫淬傘傘?br>
闃熷唴6杞甈K瀹屽悗緇堜簬寮濮嬬粍闃熼夐槦鍙嬩簡錛岀敱浜庢渶鍚庝竴杞甊P鐖嗗彂錛岃鎴戣禋浜嗗緢澶氬垎鏁幫紝鎺掑悕涓涓嬩笂鍗囧埌絎簩錛屾湰鏄邯鍝ラ夋垜鐨勫彉鎴愪簡鎴戦夌邯鍝ワ紝鍝堝搱錛岃繕閫変簡灝忎附濮愶紝濂瑰彲鏄?a >3.8鏉?/a>鍚庡叏鍥介椈鍚嶇殑浜虹墿鍝~涓鍝ヤ竴“濮?#8221;鐨勭粍鍚堬紝铏界劧鎴戝拰灝忎附濮愮涓嬈″弬鍔犵渷璧涳紝浣嗘槸鎴戜俊蹇冨崄瓚籌紝璺熺潃鏇劇粡鎷胯繃閾剁墝鐨勭邯鍝ョ渷璧涗竴瀹氭槸瑕佸啿閲戝ず閾剁殑~~PK緇撴潫鐨勯偅涓櫄涓婂懆澶╂動榪樺拰鎴戣皥榪噡~璇存湁鏈轟細甯屾湜鏆戝亣鑳界粍闃?#183;~鍟婂搱錛屾垜鐪熸槸鍏村鑷蟲瀬銆傘備粬鍙槸鎴戝湪闃熷唴鏈甯屾湜緇勯槦鐨勫ぇ鐗涳紝榪涢槦鍚庡氨涓鐩撮挦浣╀粬錛岀幇鍦ㄧ珶鐒舵湁鏈轟細鑳藉湪浠ュ悗涓璧峰茍鑲╀綔鎴橈紝涓璧峰弬鍔犲叏鍥借禌錛屽啿鍑婚噾鐗岋紝鍙傚姞wf~~鍝堝晩鍝垀\(鈮р柦鈮?/~錛堝夠鎯充腑銆傘傦級
鏈熷緟鎺ヤ笅鍘葷殑緇勯槦PK錛岀渷璧涳紝鏆戝亣闆嗚錛屽叏鍥借禌~~~褰撶劧錛岃繕鏈墂orld final 錛侊紒
AC涔嬫梾涓殑閰哥敎鑻﹁荊灝變笉鍐嶇粏璇翠簡錛屾繪槸鐪嬪埌寰堝浜鴻AC澶氫箞澶氫箞鑻︼紝寰堝浜鴻“鍒漢鍙湅鍒癆C鎵寰楀埌鐨勮崳鑰錛岃岀湅涓嶅埌鎴戜滑鑳屽悗璁粌鐨勮壈杈?#8221;
鍏跺疄涓嶆槸榪欐牱鐨勶紝鑷沖皯鎴戜笉鏄繖鏍鳳紝AC瀵規垜鑰岃█涓嶆槸涓縐嶈礋鎷咃紝涓嶆槸涓縐嶅帇鍔涳紝鑰屾槸涓縐嶅ū涔愶紝涓縐嶇敓媧繪柟寮忥紝宸茬粡涔犳儻浜嗗疄楠屽鐨勭敓媧伙紝鍙互闄や簡鍚冮キ鐫¤閮藉湪瀹為獙瀹わ紝榪欎竴鍒囬兘鏄揩涔愮殑~~^_^褰撶劧錛孉C鏈夋垚鏋滅殑璇濅細鏇村姞鐨勫揩涔悀~~O(∩_∩)O鍝堝搱~
涓鐩村璺戜笅鍘誨惂~~A Crazy Man
]]>
ID:notonlysuccess
LANG:C++
TASK:checker
*/
#include<stdio.h>
int cnt;
int ans[3][13];
int jilu[13];
int n,maxn;
void dfs(int row,int ld,int rd,int deep)
{
int i,buf,pos;
if(deep == n)
{
if(cnt<3)
{
for(i=0;i<n;i++)
ans[cnt][i] = jilu[i];
}
cnt ++;
return ;
}
buf = row | ld | rd;
for(i=0;i<n;i++)
{
pos = 1<<i;
if((buf & pos) == pos)
continue;
jilu[deep] = i+1;
dfs(row+pos,(ld+pos)<<1,(rd+pos)>>1,deep+1);
}
}
int main()
{
freopen("checker.in","r",stdin);
freopen("checker.out","w",stdout);
int i,j;
scanf("%d",&n);
cnt = 0;
maxn = 1<<n;
dfs(0,0,0,0);
for(i=0;i<3 && i<cnt;i++)
{
for(j=0;j<n-1;j++)
printf("%d ",ans[i][j]);
printf("%d\n",ans[i][j]);
}
printf("%d\n",cnt);
return 0;
}
鍝堝搱錛宧doj涓婅秴澶ф暟鎹噺鐨凬鐨囧悗涔熻繃浜嗐傘?br>
int cnt;
int n,maxn;
void dfs(int row,int ld,int rd)
{
int buf,pos;
if(row == maxn)
{
cnt ++;
return ;
}
buf = row | ld | rd;
for(pos = 1;pos <= maxn;pos <<= 1)
{
if((buf & pos) == pos)
continue;
dfs(row+pos,(ld+pos)<<1,(rd+pos)>>1);
}
}
int main()
{
int i,pos;
while(scanf("%d",&n),n)
{
cnt = 0;
maxn = (1<<n) - 1;
for(i=0;i<n/2;i++)
{
pos = 1<<i;
dfs(pos,pos<<1,pos>>1);
}
cnt <<= 1;
if(n&1)
{
pos = 1<<i;
dfs(pos,pos<<1,pos>>1);
}
printf("%d\n",cnt);
}
return 0;
}
]]>
http://acm.tju.edu.cn/toj/showp3256.html
榪欐槸dfs錛屾垜鎯婅鍒漢鏆村姏娣辨悳绔熺劧閮借兘榪囥傘傘傛垜鏅?br>瑕佹槸鎴戞潵澶勬暟鎹殑璇濇毚鍔涙繁鎼滀竴瀹氱垎鎺夈傘?br>鎴戞槸鐢╤ash[ landscapes ][ (total length)%k ][ Lth ]鏉ュ壀鏋?br>榪欐牱鐨勮瘽鏈澶氫篃灝辨悳绱?0*50*50涓姸鎬併傘傘傚緢濂界殑璁捐銆傘傚樋鍢垮張寰鑷繁鑴鎬笂璐撮噾浜?br>
http://acm.tju.edu.cn/toj/showp3257.html
涓嶅お娓呮鏄粈涔堢畻娉曪紝涓嶈繃鎴戠▼搴忛噷鐢ㄧ殑鏁扮粍鍚嶆槸DP銆傘傘傚綋鏃朵笅鎵嬬殑鏃跺欐兂鍐欐垚DP鐨勶紝緇撴灉灝變笉浼︿笉綾繪帀浜哫D
涓嶇鐢ㄤ粈涔堟暟緇勫悕錛孌P涔熷ソ錛孒H涔熷ソ錛?span style="COLOR: red">鈶?/span>鍙嶆璁板綍涓嬫瘡涓瓧姣嶅悗杈圭殑鍜岃瀛楁瘝鐩稿悓鐨勫瓧姣嶄釜鏁?br>鈶?/span>鐒跺悗鐢ㄤ竴涓猰inch鍙橀噺鍘繪壂涓閬嶅瓧絎︿覆錛屼笉鏂洿鏂癿inch(鐪嬪埌榪欎釜鍙橀噺鍚嶅簲璇ョ煡閬撴庝箞鏇存柊鐨勫惂)鍚屾椂璁板綍涓嬫爣minch鐨勪笅鏍噋os
鈶?/span>鎵埌鍚庤竟鐩稿悓瀛楁瘝鏁版槸0鐨勬椂鍊欏氨姣旇緝涓涓嬶紝鐪媘inch鍜岃繖涓瓧姣嶈皝灝?br>{
濡傛灉(minch灝?
鐨勮瘽灝辮緭鍑簃inch鍚屾椂涓嬫爣璺沖洖鍒頒箣鍓嶈褰曠殑pos;
濡傛灉(minch澶?
鐨勮瘽灝辮緭鍑鴻繖涓瓧姣嶏紝鐒跺悗緇х畫鎵?
鍐峬inch鏇存柊涓烘渶澶?br>}
涓嶈蹇樿鍚у凡緇忚緭鍑虹殑瀛楁瘝hash鎺夊摝
http://acm.tju.edu.cn/toj/showp3258.html
涓鐪嬪氨鏄妧宸ч鐩傘傜湅鎴愭槸鐜紝鎺掑簭鍚庢壘鍒頒竴涓渶澶х殑鍒犻櫎鍖洪棿鎺夈傘傜劧鍚庣湅鐪嬪墿涓嬬殑鎵鑳藉緱鍒扮殑緇濆鍊兼渶灝忓?br>娉ㄦ剰瑕佸垎綾昏璁恒傘傛瘮璧涚殑鏃跺欒sample楠楁帀銆傘備互涓哄氨鏄腑闂村縐扮殑鍙冭檻浜嗕竴縐嶆儏鍐碉紝鍏跺疄鏈夊洓縐嶃傘傘傘?br>閿欎簡濂藉閬嶃傘傘傘?br>
http://acm.tju.edu.cn/toj/showp3259.html
綆鍗曢錛屾檼娉曟檼涓嬬劧鍚庡啀棰勫鐞嗕竴涓?br>
http://acm.tju.edu.cn/toj/showp3260.html
鍥捐闃褲傘傜湅鍒板氨鏅曚簡銆傘傘傚悜鏉ユ病鏈夊仛榪囧浘璁虹殑棰橈紝鏈娣辯殑涔熷氨鏄簩鍒嗗浘鐨勬渶澶у尮閰?br>瀹屽叏鍖歸厤閮借繕娌℃湁瀛﹁繃銆傘?br>娌″姙娉曘傘傛姳鐫涓綰垮笇鏈涙潵涓己鍓灊璇曡瘯銆傘傘傜粨鏋滀笉鍑烘墍鏂橳LE浜嗐傘傘傘?br>
涓や釜灝忔椂鐨勬椂鍊欏氨鍑轟簡鍓嶅洓閬撴殏鏃剁涓浜嗭紝Luke King鍑轟簡涓夐亾錛岃屾垜鐨勭綒鏃跺お澶氾紙鍥犱負蹇冩佹瘮杈冩斁鏉撅紝鎵鏈変竴鏈夋濊礬鍐欏ソ浜嗗氨鎻愪氦錛學A浜嗕慨鏀逛竴涓嬪張鎻愪氦鍙圵A錛屽叾瀹炲緢澶氱綒鏃舵槸涓嶅繀瑕佺殑錛夈傘傚洤浜嗐傛墍浠?a >Luke King鍙鍦ㄦ瘮璧涘墠鍑洪灝辮兘瓚呰繃鎴戙侫鏄瘮杈冪畝鍗曠殑
鏋滅劧錛屽湪鏈鍚庡崄鍒嗛挓鍑轟簡A瓚呰繃鎴戜簡錛屾垜鍦ㄦ渶鍚庡崄鍒嗛挓鎻愪氦浜咵錛岀粨鏋滄槸瓚呮椂銆傘?br>
璧涘悗寰楃煡Luke King鏄?9鐨勩傘傘傚ぉ媧ュ競璧涚鍏傘傞珮涓敓闃褲傘侽rz
]]>
姘撮銆傘傘傜灛闂磋浜虹鐨勩傘俤rogon澶уぇ璇寸畻鏃ユ湡鍜屾槦鏈熺殑鏈変釜浠涔堝叕寮忥紝瀛︿範
http://acm.tju.edu.cn/toj/showp3252.html
娣辨悳錛屾瘡嬈℃悳鍒板洓涓尯鍩熺殑鍊間繚鎸佷竴涓嬶紝鐒跺悗鏋氫婦12縐嶅彲鑳藉彇鏈灝忓?br>http://acm.tju.edu.cn/toj/showp3253.html
姣旇禌鐨勬椂鍊欐兂浜嗗崐涓皬鏃剁殑鐭╅樀鏋勯犮傘傘傚悗鏉ュ彂鐜?^20涓瀹氭湁寰幆鑺傘傜敤鏈帇緙╀繚瀛樹簡鐘舵佺劧鍚巋ash
緇撴灉鏈鍚庡崐涓皬鏃舵彁浜ょ殑鏃跺欑數鑴戣摑灞忥紙涓夋暀鐨勭牬鐢佃剳錛夛紝寮鏈鴻繕鍘熷悗浠g爜鍏ㄦ棤
鍚姩榪樺惎鍔ㄤ簡10鍒嗛挓銆傛偛鍓ф敹鍦猴紝浜哄搧涓嶅ソ鍟娿傘傘?br>http://acm.tju.edu.cn/toj/showp3254.html
妯℃嫙鍔犺椽蹇冦傜畝鍗曢
http://acm.tju.edu.cn/toj/showp3255.html
姣旇禌鐨勬椂鍊欐椂闂撮兘鑺卞湪浜咰涓婅竟錛屾病鏃墮棿鐪嬨傘傘?br>
榪欏満姣旇禌鍙湁涓ら亾姘撮錛屾墍鏈夋垜鍋氫簡涓夐亾涔熼兘鎺掑湪浜嗗墠鍗?nbsp; %>_<% 瑕佹槸鐢佃剳涓嶈摑灞忋傘傘?
]]>