emmmmmm,這個之前講課的原題居然出到比賽裡了。
我怒肝2h+然後a了此題,結果還是被某高一巨佬吊打......
題意:n個球隊兩兩比賽,勝得3分,敗得0分,平得1分。
現有乙個總分表,求問可能的比賽情況。
解:發現答案與球隊的順序無關,於是按照分數排序。
然後發現可能搜到重複狀態,可以記憶化嗎?可以拿hash記憶化......(毒瘤)。
然後列舉當前第一隊與其他隊的勝負情況,這裡我又寫了個dfs(毒瘤 << 1)。
然後沒了......注意這道題實現起來滿滿的毒瘤。
1 #include 2 #include 3ac**4const
int n = 12, b = 31, om = 1000000, mo = 1e9 + 7; 5
6struct
node 15}
16return;17
}18 inline bool
operator ==(const node &d) const
22for(int i = 1; i <= t; i++) 26}
27return1;
28}29 inline void
st()
*/35
return;36
}37 inline void
out()
41 puts(""
);42
return;43
}44 }node[1500000], temp; int
top;
4546
inthead[om];
4748 inline int
find(node x) 54}
55return -1;56
}5758 inline void
insert(node sta)
6566
int dfs(node, int
);67
68int dfsp(node sta, int k, int lw)
74 std::swap(sta.a[1
], sta.a[sta.t]);
75 sta.t--;
76return
dfs(sta, lw);77}
78if((sta.t - k + 1) * 3
< sta.a[1
]) 81
82int ans = 0;83
if(sta.a[k] >= 3)
89if(sta.a[1] >= 3)
95if(sta.a[1] >= 1 && sta.a[k] >= 1)
101return
ans;
102}
103104
int dfs(node sta, int
last)
111return0;
112}
113114
sta.geth();
115int t =find(sta);
116if(t > -1
) 119
120int ans = dfsp(sta, 2
, last);
121122 sta.ans =ans;
123insert(sta);
124125
return
ans;
126}
127128
intmain()
136137 temp.t =n;
138int ans = dfs(temp, tot - (n - 1) *n);
139140 printf("%d"
, ans);
141142
return0;
143 }
注意到洛谷rank1的搜尋方法和我大同小異,但是速度吊打我14.75倍(毒瘤)。他以為這個東西可以用ll裝下(真tm的可以!!!我是沙雕!),然後我就sb的又存又傳了一大堆陣列......
洛谷 比賽題解
這套題的題目質量很高,寫一發題解。t1 cjwssb最近在物理學科上遇到了難題,他不會計算乙個電路中的總電阻,現在他找到了你,希望你能幫助他。這個電路有如下限定 1 電路只由導線以及電阻為一歐的電阻組成 2 保證電路從左到右連線,即每個電阻或導線的兩個連線點xy保證x 我們可以用dfs求解,這個電路...
洛谷比賽日記
好不容易參箇賽才做幾個小時 只做了前4題,後面5題直接空著其實只是刷刷水題 工廠,模擬題 一開始zz想了半天怎麼貪心,差點去寫搜尋,最後突然發現只能按序放 秒之 一開始沒注意規模wa了,改了long long就a了 不知道為什麼有人t掉,無法理解 1 include 2 intmain 317 an...
關卡一 洛谷比賽
lj終於弄懂了任務,他需要闖過九九八十一個關卡,才能拿到鑰匙,回到主世界。為了早日回家,lj踏入了第一關。這是乙個由方塊構成的世界,連lj都被方塊化了 mc?構成這個世界的方塊只有兩種,泥土方塊和柵欄方塊。由於這是第一關,管理員為了減少難度,將三維世界抽象成二維世界,並派遣npc ljy去告訴lj,...