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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

星空[好题][题意转化]

發(fā)布時(shí)間:2025/5/22 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 星空[好题][题意转化] 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目大意:給你一個(gè)0/1串,讓你對(duì)區(qū)間亦或(有特定幾個(gè)長(zhǎng)度限制操作),最后讓你求出把這個(gè)0/1串變成全0串的最小操作數(shù);

前置問題:

首先發(fā)現(xiàn)對(duì)原序列區(qū)間整體亦或很不好控制,因?yàn)闀?huì)不斷出現(xiàn)新的1;

那我們?cè)趺崔k?

想想差分;

與普通線性數(shù)組差分一樣,若原序列有初始值,則需要把原序列轉(zhuǎn)化為差分序列;

具體求法即為:b[i]=a[i]-a[i-1];(b數(shù)組為差分?jǐn)?shù)組,a為原數(shù)組)

同理亦或差分:b[i]=a[i]^a[i-1];

于是我們可以把原序列轉(zhuǎn)化成為差分序列;

那我們?yōu)槭裁匆言蛄修D(zhuǎn)化為差分序列呢?

{

  1.考慮區(qū)間修改,元序列有0與1相互轉(zhuǎn)化,并會(huì)蹦出新的1;

  2.而差分?jǐn)?shù)組只對(duì)兩端進(jìn)行修改;只有0/1的單次轉(zhuǎn)化;

  3.最重要的性質(zhì),差分?jǐn)?shù)組與原數(shù)組的最終狀態(tài)一直,都是全0串;(若 原序列為000000000 ,亦或差分序列不也得是00000000嗎)

}

一-------于是成功轉(zhuǎn)化題意;

在原序列的差分序列上進(jìn)行如下操作:

1.把可把1在序列上向左移動(dòng)或向右移動(dòng)幾種固定長(zhǎng)度,當(dāng)1與1想碰時(shí)變?yōu)?;

2.求最終把這個(gè)序列變?yōu)槿?串的最小操作數(shù);

eg.差分序列:000110001100?? 區(qū)間修改就是選區(qū)間的左右端點(diǎn)(不嚴(yán)謹(jǐn)),然后對(duì)兩個(gè)端點(diǎn)亦或,這不就是把左端點(diǎn)1亦或成0,而右端點(diǎn)0亦或成1嗎;其實(shí)就是把1移動(dòng)......

那這樣就很好做了;

既然有固定的長(zhǎng)度;那就把長(zhǎng)度看成邊;

把差分序列上的每個(gè)點(diǎn)都和他能一次操作到達(dá)的點(diǎn)連邊;而邊權(quán)就是1;一部操作嗎.......

二-------于是就形成了一個(gè)圖;

而我們要知道的就是1之間互相到達(dá)的代價(jià);在圖中轉(zhuǎn)化為距離;

那就跑dijistrla唄;只不過得跑2k次;

但沒關(guān)系啊;NlogN*2k完全可以;

一波dijistrla后,我們求出了dis[i][j] 代表的是差分序列上 第i個(gè)1 到 第j個(gè)1的 代價(jià);

三-------于是問題又轉(zhuǎn)化了:

你有2k個(gè)物品,兩兩能以一定代價(jià)互相匹配,求把這2k個(gè)物品分為k對(duì)的最小代價(jià);

而k<=8;2k<=16;

狀壓?jiǎn)h;O((k^2)*(2^2k))可以卡過;

最終狀態(tài)就是(1<<2k)-1;

附上自帶常數(shù)的代碼

1 #include<bits/stdc++.h> 2 using namespace std; 3 #define rd(x) scanf("%lld",&x) 4 #define int long long 5 int a[400050],b[400050],edge[1000],pos[100],id[400050]; 6 int N,K,M; 7 int dis[100][100]; 8 int f[1<<20|1],g[100][100]; 9 vector<int>to[400500]; 10 11 struct node{ 12 int to,dis; 13 node(int a,int b){to=a;dis=b;} 14 friend bool operator<(node a,node b){ 15 return a.dis>b.dis; 16 } 17 }; 18 19 bool v[40050]; 20 int d[40050]; 21 void diji(int st){ 22 priority_queue<node>q; 23 memset(d,0x3f,sizeof(d));memset(v,0,sizeof(v)); 24 d[st]=0;q.push(node(st,d[st])); 25 register int u,w; 26 while(q.size()){ 27 u=q.top().to;w=q.top().dis;q.pop(); 28 if(v[u])continue; 29 v[u]=1; 30 for(register int i=0,y;i<to[u].size();++i){ 31 y=to[u][i]; 32 if(v[y])continue; 33 if(d[u]+1<d[y]){ 34 d[y]=d[u]+1; 35 q.push(node(y,d[y])); 36 } 37 } 38 } 39 for(int i=1;i<=pos[0];++i) 40 if(id[i]!=st){ 41 dis[id[st]][i]=dis[i][id[st]]=d[pos[i]]; 42 } 43 } 44 45 signed main(){ 46 rd(N);rd(K);rd(M); 47 for(register int i=1,p;i<=K;++i){ 48 rd(p);a[p]=1; 49 } 50 for(register int i=1;i<=M;++i){ 51 rd(edge[i]); 52 } 53 for(register int i=1;i<=N;++i){ 54 for(register int j=1;j<=M;++j){ 55 if(i+edge[j]>N+1)break; 56 to[i].push_back(i+edge[j]); 57 to[i+edge[j]].push_back(i); 58 } 59 } 60 for(register int i=1;i<=N+1;++i){ 61 b[i]=a[i]^a[i-1]; 62 if(b[i])pos[++pos[0]]=i,id[i]=pos[0]; 63 } 64 for(register int i=1;i<=pos[0]-1;++i)diji(pos[i]); 65 /*for(int i=1;i<=pos[0];++i){ 66 for(int j=1;j<=pos[0];++j)cout<<dis[i][j]<<" "; 67 cout<<endl; 68 }*/ 69 for(register int i=1;i<=pos[0];++i) 70 for(register int j=1;j<=pos[0];++j) 71 if(i!=j)g[i][j]=(1<<i-1)|(1<<j-1); 72 memset(f,0x3f,sizeof(f));register int Z=(1<<pos[0])-1; 73 f[0]=0; 74 for(register int i=0;i<=Z;++i) 75 { 76 if(i==Z)break; 77 for(register int j=1;j<=pos[0];++j) 78 if((i&(1<<j-1))==0){ 79 for(register int k=j+1;k<=pos[0];++k) 80 if((i&(1<<k-1))==0){ 81 f[i|g[j][k]]=min(f[i|g[j][k]],f[i]+dis[j][k]); 82 } 83 } 84 85 } 86 printf("%lld\n",f[Z]); 87 } 自帶常數(shù)爆炸

?

轉(zhuǎn)載于:https://www.cnblogs.com/wang-hesong/p/11335472.html

總結(jié)

以上是生活随笔為你收集整理的星空[好题][题意转化]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国内自拍视频在线观看 | 五月婷婷六月丁香综合 | 久久国产精品网 | 欧美一区二区三区成人片在线 | 国产裸体舞一区二区三区 | 欧美三级精品 | 国产成人综合网 | 捆绑中国女人hd视频 | 亚洲性影院| 夜夜夜网 | va毛片 | 亚洲av无码乱码在线观看富二代 | 久草91 | 超碰夜夜 | 欧美亚洲日本一区 | 男女涩涩 | 天天操天天射天天爽 | 少妇日皮视频 | 黄色你懂的 | 99精品一区二区三区无码吞精 | av色成人 | аⅴ资源天堂资源库在线 | 玩偶姐姐在线看 | 久久加久久 | av播放在线 | 日韩三级麻豆 | 日日日干干干 | 在线不卡二区 | 久久综合操 | 亚洲视频小说 | 天天摸日日摸狠狠添 | 美国黄色网址 | 亚洲激情婷婷 | 国产va| 日本xxx在线播放 | 寂寞d奶大胸少妇 | 亚洲国产成人久久 | 免费av在线网址 | 国产污视频在线播放 | 在线观看黄色 | 草草在线影院 | 成品人视频ww入口 | 8x国产一区二区三区精品推荐 | 亚洲com| 在线观看你懂的视频 | 久久久片| 精品综合久久 | 四虎永久在线观看 | 免费成人视屏 | 熟妇人妻中文字幕无码老熟妇 | 打屁股疼的撕心裂肺的视频 | 日韩一区不卡视频 | 欧美劲爆第一页 | 波多野结衣免费在线视频 | 国产成人精品影院 | 精品久久免费观看 | 男女曰逼视频 | 精品一区在线观看视频 | 天堂在线视频观看 | 91精品人妻一区二区三区 | 啪啪免费 | 欧美做受喷浆在线观看 | 影音先锋国产 | 国产在线最新 | 涩涩涩av | 三级性生活片 | www.jizzcom| 国产精品久久久久久影视 | 瑟瑟视频免费看 | 四季av综合网站 | 国产青青草视频 | 天天国产视频 | 欧美大屁股熟妇bbbbbb | 天天噜夜夜噜 | 污污的网站在线观看 | 影音先锋成人资源网站 | 日本特级淫片 | 草草影院一区二区三区 | 成人图片小说 | 黄页网站免费在线观看 | 欧美男同又粗又长又大 | av网站大全在线观看 | 亚洲第一页夜 | 在线播放黄色av | 美日韩三级 | 久久亚洲激情 | 美女三级网站 | 欧美日韩激情视频在线观看 | 男人影院在线观看 | 亚洲欧美综合一区 | 国产伦精品一区二区三区视频1 | www.youji.com| 干干操操 | 国产精品51麻豆cm传媒 | 久久免费一级片 | 精品蜜桃一区二区三区 | 欧美性生交大片免费看app麻豆 | 在线视频观看一区 | 欧美综合社区 |