可以感受到這種題是按某個順序排序,然後就可以順著做了。
對於一組方案,上下的順序應該是可以調整的。
假設是a[i],b[i],a[j],b[j]
g是j以下的防禦值和。
目前可以,有b[
i]>=g+
a[j]
不可以交換,則有b[
j]a[i]
想辦法把g消掉。g+
a[i]
−(g+
a[j]
)>b[
j]−b
[i]
a[i]
−a[j
]>b[
j]−b
[i]
a[i]
+b[i
]>a[
j]+b
[j]
因此按照a+b的順序排個序,後面直接o(
tn2)
dp就好了。
code:
#include
#include
#include
#define fo(i, x, y) for(int i = x; i <= y; i ++)
#define fd(i, x, y) for(int i = x; i >= y; i --)
#define min(a, b) ((a) < (b) ? (a) : (b))
using
namespace
std;
const
int n = 1e3 + 5;
int n, m;
struct node a[n];
int o, f[n], d[n], bz;
bool rank(node a, node b)
int mi;
int main()
o = 0;
fo(i, 1, n) f[i] = a[i].u;
fo(j, 2, n)
bz = 0;
fo(i, 1, n)
if(!bz)
}bz = 0; fo(i, 1, n) if(f[i] <= m) bz = 1;
if(bz) printf("%d\n", n);
}}
中山市選2011 殺人遊戲
我考試想的正解,但是.有疏漏 1.鄰接表的陣列又開小了 2.概率計算錯誤 正解就是tarjen 亂搞 1.這個圖可能是分片的圖,不一定是連通圖 2.對於其中的環進行縮點,然後在新建的圖上找indegree為0的點的數量sum,就是我們需要調查的人 稱之為張一帆 3.其中我們定義有 這樣的張一帆,它可...
中山市選2011 殺人遊戲
一位冷血的殺手潛入na wiat 並假裝成平民。警察希望能在n個人裡面查出誰是殺手 警察能夠對每乙個人進行查證,假如查證的物件是平民,他會告訴警察,他認識的人,誰是殺手,誰是平民 假如查證的物件是殺手,殺手將會把警察乾掉 現在警察掌握了每一乙個人認識誰。每一乙個人都有可能是殺手,看作他們是殺手的概率...
中山市選2011 殺人遊戲
online judge bzoj 2438,luogu 4819 label tarjan縮點,概率,yy 一位冷血的殺手潛入 na wiat,並假裝成平民。警察希望能在 n 個人裡面,查出誰是殺手。警察能夠對每乙個人 進行查證,假如查證的物件是平民,他會告訴警察,他認識的人,誰是殺手,誰是平民。...