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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

hdu4975 行列和构造矩阵(dp判断唯一性)

發(fā)布時(shí)間:2025/6/17 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu4975 行列和构造矩阵(dp判断唯一性) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題意:
? ? ? 和hdu4888一樣,只不過(guò)是數(shù)據(jù)加強(qiáng)了,就是給你行列的和,讓你構(gòu)造一個(gè)矩陣,然后判斷矩陣是否唯一。

思路:

? ? ? 構(gòu)造矩陣很簡(jiǎn)單,跑一次最大流就行了,關(guān)鍵是判斷矩陣的唯一性,之前的那個(gè)4888我用的是深搜找環(huán)過(guò)的,這個(gè)題目就TLE了,數(shù)據(jù)加強(qiáng)了,對(duì)于判斷矩陣的唯一性我們可以這么想假如某一行的i列和j列滿足 i列的這個(gè)> 0 && j列的這個(gè) < 9此時(shí)我們?cè)僭诹硪恍姓业?? i列的這個(gè)< 9 && j列的這個(gè) > 0就可以把>0 的拿出來(lái)一個(gè)放在<9的上面,這樣答案就不唯一了,對(duì)于最大流跑完后的到的矩陣,如果我們暴力判斷上面的哪些情況的話是大約O(n^4)這樣就比DFS找環(huán)還浪費(fèi)時(shí)間,所以我們要用到dp優(yōu)化,dp[i][j]記錄的是在當(dāng)前的狀態(tài)之前,是否存在在某一行中,i列<9,j列>0,這樣我們就可以利用之前狀態(tài)的結(jié)果來(lái)節(jié)省一層for(具體看代碼),但是這樣還是TLE了,我們?cè)诿總€(gè)for前面加幾個(gè)小優(yōu)化就可以過(guò)了。


#include<stdio.h> #include<string.h> #include<queue>#define N_node 1005 #define N_edge 600000 #define INF 1000000000 using namespace std;typedef struct {int to ,next ,cost; }STAR;typedef struct {int t ,x; }DEP;STAR E[N_edge]; DEP xin ,tou; int list[N_node] ,listt[N_node] ,tot; int deep[N_node]; int row[505] ,col[505]; int map[505][505]; int dp[505][505];void add(int a ,int b ,int c) {E[++tot].to = b;E[tot].cost = c;E[tot].next = list[a];list[a] = tot;E[++tot].to = a;E[tot].cost = 0;E[tot].next = list[b];list[b] = tot; }bool BFS_Deep(int s ,int t ,int n) {memset(deep ,255 ,sizeof(deep));deep[s] = 0;xin.x = s ,xin.t = 0;queue<DEP>q;q.push(xin);while(!q.empty()){tou = q.front();q.pop();for(int k = list[tou.x] ;k ;k = E[k].next){xin.x = E[k].to;xin.t = tou.t + 1;if(deep[xin.x] != -1 || !E[k].cost)continue;deep[xin.x] = xin.t;q.push(xin);}}for(int i = 0 ;i <= n ;i ++)listt[i] = list[i];return deep[t] != -1; }int minn(int x ,int y) {return x < y ? x : y; }int DFS_Flow(int s ,int t ,int flow) {if(s == t) return flow;int nowflow = 0;for(int k = listt[s] ;k ;k = E[k].next){listt[s] = k;int to = E[k].to;int c = E[k].cost;if(deep[to] != deep[s] + 1 || !c)continue;int tmp = DFS_Flow(to ,t ,minn(c ,flow - nowflow));nowflow += tmp;E[k].cost -= tmp;E[k^1].cost += tmp;if(flow == nowflow)break; } if(!nowflow) deep[s] = 0;return nowflow; }int DINIC(int s ,int t ,int n) {int ans = 0;while(BFS_Deep(s ,t ,n)){ans += DFS_Flow(s ,t ,INF);}return ans; }bool jude(int n ,int m ,int mktot) {int i = 1 ,j = 1 ,k;for(k = mktot + 1 ;k <= tot ;k += 2){ map[i][j] = E[k].cost;if(++j > m) {i ++ ,j = 1;}} memset(dp ,0 ,sizeof(dp));for(i = 1 ;i <= n ;i ++){if(row[i] == 0 || m * 9 == row[i])continue;for(j = 1 ;j <= m ;j ++){if(col[j] == 0 || n * 9 == col[j])continue; for(k = j + 1 ;k <= m ;k ++){int mk1 = 0 ,mk2 = 0;if(map[i][j] < 9 && map[i][k] > 0){if(dp[k][j]) return 1;mk1 ++;}if(map[i][j] > 0 && map[i][k] < 9){if(dp[j][k]) return 1;mk2 ++;}if(mk1) dp[j][k] = 1;if(mk2) dp[k][j] = 1;}}}return 0; }int main () {int n ,m ,i ,j ,s1 ,s2 ,a ,mkk;int t ,cas = 1;scanf("%d" ,&t);while(t--){scanf("%d %d" ,&n ,&m);s1 = s2 = mkk = 0;memset(list ,0 ,sizeof(list)) ,tot = 1;for(i = 1 ;i <= n ;i ++){scanf("%d" ,&a);add(0 ,i ,a);s1 += a;if(m * 9 < a) mkk = 1;row[i] = a;}for(i = 1 ;i <= m ;i ++){scanf("%d" ,&a);add(i + n ,n + m + 1 ,a);s2 += a;col[i] = a;if(n * 9 < a) mkk = 1;}printf("Case #%d: " ,cas ++);if(s1 != s2 || mkk){puts("So naive!");continue;} int mktot = tot + 1; for(i = 1 ;i <= n ;i ++)for(j = 1 ;j <= m ;j ++)add(i ,j + n ,9);int maxflow = DINIC(0 ,n + m + 1 ,n + m + 1); if(s1 != maxflow){puts("So naive!");continue;} jude(n ,m ,mktot)? puts("So young!"):puts("So simple!");}return 0; }

總結(jié)

以上是生活随笔為你收集整理的hdu4975 行列和构造矩阵(dp判断唯一性)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 99re在线播放 | 激情婷婷六月 | 色综合啪啪| 四虎音影 | 亚洲不卡av一区二区 | 福利片在线观看 | 激情小说五月天 | 草久久久久久 | 欧美a视频在线观看 | 阿v天堂在线观看 | 情趣五月天| 天天天干 | 青青草免费观看 | 极品三级| 美女网站全黄 | 久久99精品久久久久久园产越南 | 久久久久久久久久久影院 | 国产一区二区精品 | 欧美成人免费观看视频 | 人妖和人妖互交性xxxx视频 | 亚洲 欧美 变态 另类 综合 | 综合性色| 亚洲一区有码 | 成人一区三区 | 亚洲欧美动漫 | 成人亚洲天堂 | 伊人激情综合网 | 99re最新网址| 特黄网站 | 亚洲色偷精品一区二区三区 | 电影91久久久 | 狐狸视频污 | 在线视频亚洲欧美 | 奇米影视盒 | 91丝袜在线观看 | 伊人ab| 国产综合视频在线观看 | 欧美精品久久久久久 | 无码毛片aaa在线 | 午夜肉体高潮免费毛片 | 亚洲天堂手机版 | 在线视频一区二区三区四区 | 久久国产精品久久久 | 中文字幕在线视频一区 | www欧美在线 | 丁香八月婷婷 | 日韩女同一区二区三区 | 成人福利在线 | 天天爱天天爽 | 青青草国产精品 | 国产喷水吹潮视频www | 欧美成人小视频 | 亚洲五月花 | 久久资源在线 | 97影院 | 日韩五码 | 国产精品久久久久久69 | 国内久久久久 | 黄色小视频在线观看免费 | 国产人妻人伦精品1国产丝袜 | 欧洲久久久久久 | 友田真希一区二区 | 韩国伦理片在线播放 | 亚洲天堂中文字幕在线 | 五月天在线播放 | www.桃色av嫩草.com | 台湾佬美性中文娱乐网 | 日日躁夜夜躁aaaabbbb | 懂色av一区二区夜夜嗨 | 日韩视频一区二区在线观看 | 成人高清在线 | a级黄色影院 | 亚洲区一区二区三区 | 性欧美在线视频观看 | 麻豆一区在线 | 88av网站 | 黄色成年人网站 | 久久综合精品视频 | 国产伦精品一区二区三区视频免费 | 亚洲国产一区在线 | 蜜臀视频一区二区 | 一级中文字幕 | 中文字幕永久在线视频 | av特黄| 日本免费毛片 | 大黄网站在线观看 | 色777| 欧美第七页 | 欧美一级无毛 | a一级视频| 美女诱惑一区 | 免费成人av在线播放 | 午夜视频免费在线 | 中文字幕在线免费看 | 免费看黄色片视频 | 另类图片亚洲色图 | 精品少妇人妻一区二区黑料社区 | 久久久免费高清视频 | 污视频网站在线看 |