題意:n個木棍, 兩端有顏色, 相同顏色可以鏈接, 問你最終能否形成一條線段。
思路:典型的歐拉道路, 成立的條件是 1. 圖聯通 。 2. 度為奇數的點不能超過2個。 用map超時了, 可以用hash水過去。
細節參見代碼:
#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define Max(a,b) ((a)>(b)?(a):(b)) #define Min(a,b) ((a)<(b)?(a):(b)) using namespace std; typedef long long ll; typedef long double ld; const ld eps = 1e-9, PI = 3.1415926535897932384626433832795; const int mod = 1000000000 + 7; const int INF = 0x3f3f3f3f; // & 0x7FFFFFFF const int seed = 131; const ll INF64 = ll(1e18); const int maxn = 500000 + 10; const int hashsize = 1000007; int T,n,m,p[hashsize + 10],in[hashsize + 10]; int res, cnt, hehe[hashsize + 10]; char s[22],s2[22]; int _find(int x) { return p[x] == x ? x : p[x] = _find(p[x]); } int _hash(char *s) { int len = strlen(s), v = 1; for(int i=0;i 1) ok = false; int res = 0; for(int i = 1; i < hashsize; i++) { if(hehe[i]) { if(in[i] & 1) ++res; } } if(res > 2) ok = false; if(ok) printf("Possible\n"); else printf("Impossible\n"); return 0; }
BCB2007 的發布是一件令人振奮的事情,它
目標:這次學習的目標是回答下面的幾個問題:1
1. 安裝Eclipse標准版, 完成之後;
如果說求兩個數相加是輕松,那麼求三個數相加則是痛苦,如果說求
一、原題Given an array of integers
問題及代碼/* 完成人:賈如杉 題目描述 定義存放一個學生信