時間限制:
2000ms
單點時限:
1000ms
記憶體限制:
256mb
兩個數a和 b (a第一行為乙個數t,為資料組數。之後每組資料報含兩行。
第一行為n,為集合s的大小。第二行為n個整數,表示集合內的數。
對於每組資料輸出一行,形如"case #x: y"。x為資料編號,從1開始,y為最大的子集的大小。
1 ≤ t ≤ 20
集合s內的數兩兩不同且範圍在1到500000之間。
小資料1 ≤ n ≤ 15
大資料1 ≤ n ≤ 1000
樣例輸入
352 4 8 16 32
52 3 4 6 9
31 2 3
樣例輸出
case #1: 3case #2: 3
case #3: 2
思路: 若兩個數是質數相關的,則在兩數之間連線一條無向邊。根據質數相關的定義可發現,圖中不可能存在奇數環,則可以通過黑白染色將集合分成兩個部分,這兩個部分的最大的乙個,即為解。
//黑白染色
#include #include #include #include #include #include using namespace std;
bool isprime[500000+5];
int t,n;
int a[20];
int p[20];
bool pcount[20][20];
bool cmp(int x, int y)
void initg()
}}int qu[22];
int head,rear;
bool ispos[22];
int main()
sort(a,a+n,cmp);
memset(pcount,false,sizeof(pcount));
int tmp;
for(int i = 0; i < n; i++)}}
}int total = 0;
int ans_tmp;
int total_ans;
memset(ispos,false,sizeof(ispos));
for(int i = 0; i < n; i++)}}
total_ans = 0;
ans_tmp = 0;
for(int j = 0; j < n; j ++)
if(total_ans > ans_tmp) total+=total_ans;
else total+=ans_tmp;}}
printf("case #%d: %d\n",item,total);
}return 0;
}
程式設計之美初賽B
時間限制 2000ms 單點時限 1000ms 記憶體限制 256mb 小冰是個八卦的人,最近她對乙個社交 很感興趣。由於小冰是個機械人,所以當然可以很快地弄清楚這個社交 中使用者的資訊啦。她發現這個社交 中有n個使用者,使用者和使用者之間可以進行互動。小冰根據使用者之間互動的次數和內容判斷每對使用...
微軟程式設計之美 初賽
相似字串對於兩個長度相等的字串,我們定義其距離為對應位置不同的字元數量,同時我們認為距離越近的字串越相似。例如,0123 和 0000 的距離為 3,0123 和 0213 的距離則為 2,所以與 0000 相比,0213 和 0123 最相似。現在給定兩個字串 s1 和 s2,其中 s2 的長度不...
程式設計之美初賽第二場
problem a 一邊輸入邊一邊維護殘留網路,然後跑isap。小資料過了,大資料tle。據說可以bfs預處理 層次網路。可以過。view code include include include include using namespace std const int inf 10000000 ...