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

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

生活随笔

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

编程问答

P6772-[NOI2020]美食家【矩阵乘法,倍增】

發(fā)布時(shí)間:2023/12/3 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P6772-[NOI2020]美食家【矩阵乘法,倍增】 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

我考場(chǎng)(線上賽)切NOI的題了!


正題

題目鏈接:https://www.luogu.com.cn/problem/P6772


題目大意

nnn個(gè)點(diǎn)mmm條邊,每個(gè)城市有不同的愉悅值,從111出發(fā),要求經(jīng)過(guò)TTT的時(shí)間后回到點(diǎn)111(不能原地停留。

特別的是有kkk個(gè)美食節(jié),在第tit_iti?個(gè)時(shí)刻如果在第xix_ixi?個(gè)城市就可以額外獲得yiy_iyi?的愉悅值,求路徑上最大愉悅值


解題思路

首先矩陣乘法變形后是可以求最長(zhǎng)路的

之后之前有一道題目[POI2015]WYC[POI2015]WYC[POI2015]WYC【矩陣乘法,倍增】和這題很像,因?yàn)檫厵?quán)最大只有5,所以可以將每個(gè)點(diǎn)分成555個(gè)點(diǎn)就可以跑矩陣乘法了。這樣有250250250個(gè)點(diǎn),跑一次矩陣乘法是O(2503log?T)O(250^3\log T)O(2503logT),不考慮美食節(jié)的情況下可以過(guò),但是如果有美食節(jié)時(shí)間復(fù)雜度就接近O(k?2503log?T)O(k*250^3\log T)O(k?2503logT)顯然不可過(guò)。

然后之前有一道NOIOnlineNOI\ OnlineNOI?Online的題目NOIOnline#3NOI\ Online \#3NOI?Online#3提高組魔法值正解是先預(yù)處理出logTlog TlogT個(gè)矩陣然后再用向量乘矩陣

我們就得出了解法,我們先預(yù)處理使得Fi=A2iF_i=A^{2^i}Fi?=A2i,然后這樣我們用向量乘矩陣就是O(n2)O(n^2)O(n2)的,之后每次做矩陣到每一個(gè)美食節(jié),然后對(duì)于在那一天的情況加上一個(gè)愉悅值即可,可以通過(guò)本題。

時(shí)間復(fù)雜度:O((nw)3log?T+(nw)2klog?T):O((nw)^3\log T+(nw)^2k\log T):O((nw)3logT+(nw)2klogT)


codecodecode

#include<cstdio> #include<cstring> #include<algorithm> #define p(x,y) ((x)*5+(y)) #define ll long long using namespace std; const ll N=51; struct matrix{ll a[N*5][N*5]; }f[32]; struct node{ll t,x,y; }h[210]; ll n,m,T,k,tot,Size,a[N*5],p2[32],c[N*5]; matrix operator*(const matrix &a,const matrix &b){matrix c;memset(c.a,0xcf,sizeof(c.a));for(ll i=0;i<Size;i++)for(ll j=0;j<Size;j++)for(ll k=0;k<Size;k++)c.a[i][j]=max(c.a[i][j],a.a[i][k]+b.a[k][j]);return c; } void mul(matrix &b){memcpy(c,a,sizeof(c));memset(a,0xcf,sizeof(a));for(ll i=0;i<Size;i++)for(ll j=0;j<Size;j++)a[j]=max(a[j],b.a[i][j]+c[i]);return; } void power(ll b){for(ll i=0;i<=tot;i++)if(b&p2[i])mul(f[i]);return; } bool cmp(node x,node y) {return x.t<y.t;} int main() { // freopen("delicacy.in","r",stdin); // freopen("delicacy.out","w",stdout);scanf("%lld%lld%lld%lld",&n,&m,&T,&k);Size=n*5;memset(f[0].a,0xcf,sizeof(f[0].a));for(ll i=0;i<n;i++){scanf("%lld",&c[i]);for(ll j=0;j<4;j++)f[0].a[p(i,j+1)][p(i,j)]=0;}for(ll i=1;i<=m;i++){ll x,y,w;scanf("%lld%lld%lld",&x,&y,&w);x--;y--;f[0].a[p(x,0)][p(y,w-1)]=c[y];}p2[0]=1;while(p2[tot]*2<=T){tot++;p2[tot]=p2[tot-1]*2;f[tot]=f[tot-1]*f[tot-1];}for(ll i=1;i<=k;i++)scanf("%lld%lld%lld",&h[i].t,&h[i].x,&h[i].y),h[i].x--;sort(h+1,h+1+k,cmp);ll now=0;h[++k]=(node){T,0,0};memset(a,0xcf,sizeof(a));a[0]=c[0];for(ll i=1;i<=k;i++){power(h[i].t-now);a[p(h[i].x,0)]+=h[i].y;now=h[i].t;}if(a[0]<0)printf("-1");else printf("%lld",a[0]); }

總結(jié)

以上是生活随笔為你收集整理的P6772-[NOI2020]美食家【矩阵乘法,倍增】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

主站蜘蛛池模板: 国内毛片毛片毛片毛片 | 黄色操人视频 | av二区在线| 欧美性久久久 | 人人cao| 国产高清日韩 | 美女被草网站 | 韩国黄色片网站 | 小萝莉末成年一区二区 | 在线观视频免费观看 | 亚洲天堂社区 | 97国产成人无码精品久久久 | 国产亚洲网站 | 国产一区二区三区高清视频 | 精品日韩在线播放 | 欧美综合在线一区 | 玖玖热视频 | 女人扒开腿让男人桶爽 | 九色在线| 国产农村妇女毛片精品久久 | 福利视频二区 | 黄色免费网 | 久久伊人一区二区 | 男女ss视频| 少妇被黑人到高潮喷出白浆 | 红猫大本营在线观看的 | 亚洲欧美在线一区二区 | 91精品久久久久久久久久 | 久久毛片网 | 午夜激情免费 | www.久久久久久久 | 日韩av手机在线观看 | 久久一级大片 | 国产真实乱 | 国产成人无码av在线播放dvd | 三级在线观看 | 麻豆一级片 | 欧美18av | 成人香蕉网 | 久久精品亚洲天堂 | 亚洲一区二区乱码 | 久久午夜精品人妻一区二区三区 | 日韩av网站在线 | 国产精品久久久久久网站 | 天天操夜夜爱 | 国产永久在线观看 | √天堂资源在线 | 色呦呦网站入口 | 色视频综合 | 强行挺进白丝老师翘臀网站 | 毛片天堂 | 黄色午夜影院 | 91丨九色丨海角社区 | 男女一级黄色 | 亚洲国产精品99久久 | 先锋av网 | 人妻熟女一区二区三区 | 少妇一级淫免费观看 | 亚洲一区二区三区香蕉 | 欧美骚少妇 | 亚洲av无码一区二区三区在线播放 | 三级av片 | 大桥未久av在线播放 | 19韩国主播青草vip | 日韩中文字幕在线免费观看 | 中文字幕不卡在线播放 | 亚洲免费在线视频观看 | 久久黄色精品视频 | 在线免费看av | 国产骚b | 国产日韩高清在线 | 国产高清免费视频 | 日日做夜夜爽毛片麻豆 | 日韩一级不卡 | 成人免费视频播放 | 北条麻妃99精品青青久久 | 欧美国产精品久久 | 关之琳三级做爰 | 亚洲欧洲日本在线 | 九色网站在线观看 | 每日av在线| 另类毛片 | 日韩乱码人妻无码中文字幕久久 | 国产精品一区二区无线 | 啪啪av | 超碰97国产| 97在线观视频免费观看 | 日韩爱爱视频 | 国产免费又粗又猛又爽 | 国产中文字幕91 | 日本一级大毛片a一 | av无线看 | 色香色香欲天天天影视综合网 | 少女视频的播放方法 | 欧美激情国产日韩精品一区18 | 国产精品污视频 | 91叼嘿视频| 在线免费视频你懂的 | 狠狠综合网|