給定一張無向圖,將每條邊變成有向邊,使得出度等於入度的點最多。輸出最終入度=出度點的個數和每條有向邊。
第一問統計度數為偶數的點即可。
聯想尤拉回路上的每個點出度=入度,但原圖並不一定是無向圖的尤拉迴路,可以補成尤拉迴路,輸出的時候不輸出補的邊。
考慮到一張圖的奇數度數的點有偶數個,把它們分成2個點一組,然後每組加邊,那麼原圖就有尤拉迴路了。
#include #include#include
#include
#include
#include
#include
#include
#define max 207
#define maxn 10007
#define maxm 50007
#define mod 1000000007
using
namespace
std;
typedef
long
long
ll;struct
edgeedge[maxm*2
];int
head[maxn],tot,n,m,degree[maxn];
int ans[maxm*2],ansi,visit[maxm*2],flag[maxm*2
];void addedge(int u, int
v)void
init()
void dfs(int
now)
}}int
cas,u,v;
intmain()
int ans1=0
;
int js[maxn],jsi=0
;
for(int i=1;i<=n;i++)
else
}for(int i=0;i2
) printf(
"%d\n
",ans1);
for(int i=1;i<=n;i++)
for(int i=0;i)
}return0;
}
Codeforces 976E 題解報告
1 當把所有的倍數2 a都加到同一health上,health增加的最多 2 先計算每乙個creature的hp dmg,按該值對所有的creature排序 再求和,i include using namespace std const int n 200 1000 9 int hp n dmg n...
codeforces 1030E 暴力 思維)
題目 題意 給定一些數,可將區間 l r 中某些數的二進位制位的1的位置更換,使得最終區間所有數異或和為0,求這樣的區間個數。思路 在那裡瞎dp了好久,wa的很徹底,借鑑了一下別人的思路。區間合法的條件是 這個區間1的個數為偶數,並且區間中二進位制位1最多的乙個數的二進位制個數小於等於和的一半。我們...
Codeforces 1270E 構造 數學
有 n 個二維平面上的點,每兩個點之間連一條線段,將這些點劃分為兩個非空的集合 a b 同乙個集合內的兩點之間線段用黃色標註,不同集合的兩點之間線段用藍色標註,使距離相同的線段顏色相同。先將所有點的座標以其中乙個點作為原點轉化一下,使其中必定有乙個點是 0,0 然後將所有點按奇偶分為四組 0代表偶數...