日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

POJ 3498 March of the Penguins

發(fā)布時間:2025/3/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 POJ 3498 March of the Penguins 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

POJ_3498

? ? 對于任何一點(diǎn)來講,限制的是跳走的企鵝的數(shù)量,如果這個點(diǎn)不是終點(diǎn),那么必然跳過來的企鵝都會跳走,因此實(shí)際上限制的是經(jīng)過這個點(diǎn)的企鵝的數(shù)量,這樣通過拆點(diǎn)來限制經(jīng)過點(diǎn)的企鵝的數(shù)量就可以了。最后暴力一點(diǎn),枚舉每個點(diǎn)作為終點(diǎn)并判斷一下就可以了。

#include<stdio.h> #include<string.h> #include<algorithm> #define MAXD 210 #define MAXM 40410 #define INF 0x3f3f3f3f int N, first[MAXD], e, next[MAXM], v[MAXM], flow[MAXM]; int S, T, d[MAXD], q[MAXD], work[MAXD], list[MAXD], L, TOT; double D; struct Stone {double x, y;int n, m; }stone[MAXD]; double sqr(double x) {return x * x; } void init() {int i, j;TOT = 0;scanf("%d%lf", &N, &D);for(i = 0; i < N; i ++)scanf("%lf%lf%d%d", &stone[i].x, &stone[i].y, &stone[i].n, &stone[i].m), TOT += stone[i].n; } void add(int x, int y, int z) {v[e] = y, flow[e] = z;next[e] = first[x], first[x] = e ++; } void build(int t) {int i, j;S = 2 * N, T = t;memset(first, -1, sizeof(first[0]) * (N << 1 | 1)), e = 0;for(i = 0; i < N; i ++)add(i, i + N, stone[i].m), add(i + N, i, 0);for(i = 0; i < N; i ++)for(j = i + 1; j < N; j ++)if(sqr(D) >= sqr(stone[i].x - stone[j].x) + sqr(stone[i].y - stone[j].y))add(i + N, j, INF), add(j, i + N, 0), add(j + N, i, INF), add(i, j + N, 0);for(i = 0; i < N; i ++)if(stone[i].n)add(S, i, stone[i].n), add(i, S, 0); } int bfs() {int i, j, rear = 0;memset(d, -1, sizeof(d[0]) * (N << 1 | 1));d[S] = 0, q[rear ++] = S;for(i = 0; i < rear; i ++)for(j = first[q[i]]; j != -1; j = next[j])if(flow[j] && d[v[j]] == -1){d[v[j]] = d[q[i]] + 1, q[rear ++] = v[j];if(v[j] == T) return 1;}return 0; } int dfs(int cur, int a) {if(cur == T) return a;for(int &i = work[cur]; i != -1; i = next[i])if(flow[i] && d[v[i]] == d[cur] + 1)if(int t = dfs(v[i], std::min(a, flow[i]))){flow[i] -= t, flow[i ^ 1] += t;return t;}return 0; } int dinic() {int ans = 0, t;while(bfs()){memcpy(work, first, sizeof(first[0]) * (N << 1 | 1));while(t = dfs(S, INF))ans += t;}return ans; } void solve() {int i;L = 0;for(i = 0; i < N; i ++){build(i);if(dinic() == TOT)list[L ++] = i;}if(L == 0)printf("-1\n");else{printf("%d", list[0]);for(i = 1; i < L; i ++) printf(" %d", list[i]);printf("\n");} } int main() {int t;scanf("%d", &t);while(t --){init();solve();}return 0; }

總結(jié)

以上是生活随笔為你收集整理的POJ 3498 March of the Penguins的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人在线精品 | 精品国产午夜福利 | 性猛交xxxx乱大交3 | 亚洲666 | 国产精选在线 | 欧美 国产 综合 | 亚洲性大片 | 丰满熟妇被猛烈进入高清片 | 熟女少妇在线视频播放 | 亚洲精品女 | 中文字幕第27页 | 我爱avav色aⅴ爱avav | 侵犯亲女在线播放视频 | 色大师在线观看 | 久久无码人妻一区二区三区 | 欧美日本一区 | 狠狠成人 | av观看免费在线 | 琪琪伦伦影院理论片 | 久久久亚洲欧美 | 亚洲午夜福利一区二区三区 | 精品成人一区二区三区 | 国产无限制自拍 | 国产剧情一区 | 久操伊人网| 午夜福利视频一区二区 | 亚洲第一区在线播放 | 亚洲精品成人片在线观看精品字幕 | 色在线免费观看 | 女性女同性aⅴ免费观女性恋 | 日韩综合一区二区三区 | 亚洲一区二区自偷自拍 | 福利小视频 | 欧美片免费网站 | japanesehdxxxx| 欧美一级夜夜爽 | 亚洲视频 欧美视频 | 91tv国产成人福利 | 国产一区二区久久久 | 色猫咪av | 销魂奶水汁系列小说 | 国产成人亚洲精品自产在线 | 国产夫妻露脸 | 国产啊啊啊啊 | 国产精品videossex久久发布 | 欧美黄色片免费看 | 久久精彩免费视频 | 日韩av手机在线播放 | 乱h伦h女h在线视频 99999视频 | 亚洲欧洲精品一区二区三区 | 久草手机在线视频 | 亚洲黄色网络 | 国产91在线观看 | 神马午夜伦理影院 | 男女操操 | 一级人爱视频 | 香蕉免费在线视频 | 琪琪色av| 波多野结衣亚洲一区 | 奶妈的诱惑 | 99九九久久 | 制服丝袜成人动漫 | 国产夫妻在线观看 | 久艹在线视频 | 91肉色超薄丝袜脚交一区二区 | 夜夜草天天草 | 色一五月 | 日韩色图在线观看 | 日本xxx在线观看 | 男同激情视频 | 中文字幕在线播出 | 青青导航 | 婷婷色在线 | 中文字幕视频 | 国产第一精品 | 邵氏电影《金莲外传2》免费观看 | 国产精品免费视频一区二区 | xxxx在线播放| 色狠久| 中文字幕乱码在线人视频 | 波多野结衣大片 | 成人午夜视频在线免费观看 | 亚洲美女在线观看 | 免费观看成人 | 秋霞影院一区二区 | 成人狠狠干 | 131mm少妇做爰视频 | 欧美变态视频 | 爱插美女网| 黄色1级视频 | 亚洲女优视频 | 国产精品黄色在线观看 | 午夜激情视频网站 | 日本老妇性生活 | videos亚洲| 国产一级av毛片 | 免费欧美 | 国产又色又爽又黄的 | 黄色成人在线观看 |