poj 3343 二分匹配 二分

2021-06-08 20:54:26 字數 798 閱讀 5661

題意:n個人類星球和m個外星人星球,每個星球(包括外星人的)都有乙個初始的飛船數sh1[i],還有乙個每年生產的飛船數p[i],還有乙個n*m的矩陣d,d[i,j]表示從人類星球i到外星人星球j的年數(..年啊),當乙個人類星球i可以擊敗乙個外星人星球j的唯一條件是在出發年數ye,(ye-d[i,j])*p[i]+sh1[i]>=ye*p[j]+sh1[j] 的時候,人類星球i可以擊敗外星球j,不考慮外星球攻擊人類星球(這不欺負人嗎?),每個人星球只能攻擊乙個外星球,每個外星球也只能被乙個人星球攻擊,問最早在哪年開始攻擊可以把所有外星球都打掉.

#include #include #include #include #define inf 1e11

#define ll long long

using namespace std;

const int n=500;

int map[n][n];

int hp[n];

int hshill[n];

int ap[n];

int ashill[n];

int n,m;

int edge[n][n];

int cx[n];

int cy[n];

int mark[n];

void builtmap(ll mid)

}int dfs(int u)}}

return 0;

}int maxmatch()

}return res;

}int main()

if(ans==-1)

cout<<"impossible"<

二分 二分匹配

給了乙個矩陣 n行m列 選n個數 要保證這n個數不在同行同列,計算出第k大的數最小 二分答案,然後我們對於每個a i j mid的我們就i和j建立一條邊 然後二分求最大匹配必須大於等於n k 1 因為是第k大 而不是第k小 坑了好久才發現 include include include includ...

POJ2446 二分匹配

題意 給你乙個n m的格仔,問你能不能用1 2的格仔把他鋪滿,有的位置是不能被鋪的。思路 水題,直接把個相鄰的並且都是可以鋪的點連一條邊然後匹配一遍就行了,提醒乙個地方,就是輸入不能鋪的座標的時候是 先輸入列再輸入行。include include define n node 1500 define...

POJ3020 二分匹配

思路 說給自己 一開始想的是從1 h w標記整幅圖,建圖是星號和 建邊,肯定要去匹配 啊,所以空格一定不會去造,然後就理解成了最小點覆蓋,然而對於最小點覆蓋,對於 孤立點 也就是沒有連出去的邊 這樣就錯了。但是對於這個思路還是打完了,然後發現錯了。其實對於 正確 思路要先想想是嘛。正解 這題題意是乙...