biubiu~~

这道题实际上就是优化模拟,就是找到最先死的让他死掉,运用时间上的加速,题解上说,要用堆优化,也就是这个意思。

对于链表,单项链表和循环链表都不常用,最常用的是双向链表,删除和插入比较方便。

所谓挂链就是把链表中的值域换成一坨别的东东西......

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

最新文章

  1. C#多任务并行阶段控制—— Threading.Barrier
  2. HashMap、HashTable、LinkedHashMap和TreeMap用法和区别
  3. 关于hangfire的使用
  4. ORACLE【1】:触发器详解
  5. Python中通过Image的open之后,去show结果打不开bmp图片,无法正常显示图片
  6. Java空字符串与null的区别和判断字符串是否为空的方法
  7. zepto的scrollTo,实现锚点跳转
  8. hdu 3934 Summer holiday(凸包最大内接三角形)
  9. vue分页组件table-pagebar
  10. C语言学习——C程序的运行机理
  11. Python/零起点(一、数字及元组)
  12. (NO.00003)iOS游戏简单的机器人投射游戏成形记(七)
  13. 阿里云ECS服务器部署Node.js项目全过程详解
  14. windows系统开启虚拟化
  15. 学号 20175212 《Java程序设计》第3周学习总结
  16. Mac上配置maven+eclipse+spark开发环境
  17. python实战博客
  18. javascript面向对象精要第四章构造函数和原型对象整理精要
  19. VC字符串转换常用函数
  20. flask基础之蓝图的使用(七)

热门文章

  1. R语言绘图:雷达图
  2. RHEL-7.1 Server.x86_64 yum源设置为光盘
  3. WPF中,如何将绑定源设置到单件实例
  4. 【Consul】Consul架构-Consensus协议
  5. PRO*C 函数事例 1 -- 数据库连接、事务处理
  6. allegro导入网表过程中出现的错误信息
  7. python内置模块[re]
  8. Spring MVC 开发 配置
  9. BI领军者之一Tableau试用浅谈
  10. ExtJs4.1目录结构介绍和使用说明[转]