考試的時候寫了o(
nmlo
g(an
s)) 的做法得了80pts
80pts:
先二分答案,然後對於每個人可以打到的怪物連邊跑二分圖匹配
100pts:
人的數量肯定大於等於怪物的數量
s點把數軸劃分成了兩部分,每個部分內互相打擊是最優的
如果一部分的人很多,我們就從另一部分調一點過來
調過來的肯定要離s近一點啊,這樣對於哪邊都比較優
那麼怎麼確定每個人打哪個呢?以s為中心排序!
位於同一部分的怪物和人,排名相同的互相打擊
算是貪心吧
#include
#include
#include
#include
using namespace std;
struct ll;
struct rr;
priority_queueql[2];
priority_queueqr[2];
bool operator
int n,m,s;
int main()
),cnt1++;
else
qr[0].push((rr)),cnt2++;
}for (i=1;i<=m;i++)
),cnt1--;
else
qr[1].push((rr)),cnt2--;
}while (cnt1>0)//人多了 );}
while (cnt2>0)//人多了 );}
while (!ql[0].empty())
while (!qr[0].empty())
printf("%d",ans);
}
山西胡策 7
a.題意 給乙個有向圖無環連通圖,求新增一條邊x y後有向生成樹的方案數。n 100000 include using namespace std typedef long long ll const int n 100005,mo 1000000007 int ihead n cnt,n,m,x,...
11 08隊內胡策
總結就是t3想錯直接翻車233.第二題給你兩個日期,問這兩個日期差了多少毫秒。兩行,每行乙個日期,日期格式保證為 yyyy mm dd hh mm ss這種形式。第二個日期時間一定比第乙個日期時間要大兩個日期的年份一定都是 21 世紀的年份。一行乙個整數代表毫秒數。2000 01 01 00 00 ...
隊內胡策 2017 10 15
輸入描述 乙個數 t 接下來 t 行,每行乙個長度為 n 的 01 串 輸出描述 乙個數 p 表示 dqs 消耗的神力 樣例輸入 2 000011 0101 樣例輸出 26 10 資料範圍及提示 1 t 50 60 1 n 1000 100 1 n 100000 純暴力,沒什麼技術含量,但是在這道題...