日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

【NOIP 模拟赛】钟 模拟+链表

發布時間:2025/7/25 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【NOIP 模拟赛】钟 模拟+链表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

biubiu~~

這道題實際上就是優化模擬,就是找到最先死的讓他死掉,運用時間上的加速,題解上說,要用堆優化,也就是這個意思。

對于鏈表,單項鏈表和循環鏈表都不常用,最常用的是雙向鏈表,刪除和插入比較方便。

所謂掛鏈就是把鏈表中的值域換成一坨別的東東西......

#include <cstdio> inline void read(int &sum){register char ch=getchar();bool symbol=0;for(sum=0;ch<'0'||ch>'9';ch=getchar())if(ch=='-')symbol=1;for(;ch>='0'&&ch<='9';sum=(sum<<1)+(sum<<3)+ch-'0',ch=getchar());if(symbol)sum=-sum; } const int C=110; const int N=1000100; int fight[C][C],get[C][C][C]; int n,c; int a[N],qian[N],hou[N],val[N],Num,size[C]; int main(){read(c),read(n);Num=c;for(int i=1;i<=c;i++)for(int j=1;j<=c;j++)read(fight[i][j]);for(int i=1;i<=n;i++)read(a[i]),size[a[i]]++;qian[1]=0,hou[0]=1;for(int i=1;i<=n;i++)qian[i+1]=i,hou[i]=i+1,val[i]=1;for(int k=0;k<=c;k++)for(int i=0;i<=c;i++)for(int j=0;j<=c;j++)get[k][i][j]=fight[k][i]+fight[k][j];while(Num!=1){for(int i=hou[0];i<=n;i=hou[i])val[i]+=get[a[i]][a[qian[i]]][a[hou[i]]];for(int i=hou[0];i<=n;i=hou[i])if(val[i]<=0){size[a[i]]--;if(!size[a[i]])Num--;qian[hou[i]]=qian[i];hou[qian[i]]=hou[i];}}printf("%d",a[hou[0]]);return 0; }

?

轉載于:https://www.cnblogs.com/TSHugh/p/7354400.html

總結

以上是生活随笔為你收集整理的【NOIP 模拟赛】钟 模拟+链表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。