当前位置: 首页 > news >正文

P11927 [PA 2025] 重金属 / Heavy Metal 题解

题目链接:P11927 [PA 2025] 重金属 / Heavy Metal

观察到 $ n $ 特别小以至于 $ O(nsqrt(V)) $ 也能过,考虑根号分治值域 meet in middle,做完了。

代码:

#include<bits/stdc++.h>
#define time(null) chrono::steady_clock::now().time_since_epoch().count()
#define int long long
#define uint unsigned long long
#define debug() cout<<"come here\n"
#define INF 0x3f3f3f3f3f3f3f3f
#define pii pair<int,int>
#define pb push_back
#define Code return
#define by 0
#define MCYYDS ;
using namespace std;
int qpow(int a,int b,int p=INF){int ret=1;while(b){if(b&1)ret=(ret*a)%p;a=(a*a)%p;b>>=1;}return ret;}
inline int read(){int ret=0,f=1;char ch=getchar();while(ch<'0'||ch>'9')f=(ch=='-'?-1:f),ch=getchar();while(ch>='0'&&ch<='9')ret=(ret<<3)+(ret<<1)+(ch^48),ch=getchar();return ret*f;}
inline void write(int x){if(x<0){putchar('-');write(-x);return ;}if(x>9)write(x/10);putchar((char)(x%10+48));}
inline void writech(int x,char ch){write(x);putchar(ch);}
int n,m,p[205];
vector<pii > e[205],re[205];
vector<int> g[205],val[205];
bool f[205][40005],vis[205][25005];
int dis[205][25005];
priority_queue<pair<int,pii > > q;
stack<int> s;
bool cmp(pii x,pii y)
{return x.second<y.second;
}
signed main()
{
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	cout.tie(0);int T=read();while(T--){int n=read(),m=read();for(int i=1;i<=n;i++){p[i]=read();}for(int i=1;i<=m;i++){int u=read(),v=read(),w=read();e[u].pb({v,w});re[v].pb({u,w});if(w==1)g[u].pb(v); }for(int i=1;i<=n;i++){sort(e[i].begin(),e[i].end(),cmp);}f[1][1]=1;for(int i=1;i<=40000;i++){for(int j=1;j<=n;j++){if(f[j][i])s.push(j);}while(s.size()){int u=s.top();s.pop();for(auto v:g[u]){if(p[v]>=i&&!f[v][i]){f[v][i]=1;s.push(v);}}}for(int j=1;j<=n;j++){if(!f[j][i])continue;for(auto x:e[j]){int v=x.first,w=x.second;if(i*w<=40000&&i*w<=p[v])f[v][i*w]=1;}}}for(int i=1;i<=n;i++){memset(dis[i],0xcf,sizeof(dis[i]));}dis[n][1]=p[n];q.push({p[n],{n,1}});while(q.size()){int u=q.top().second.first,x=q.top().second.second;q.pop();if(vis[u][x])continue;vis[u][x]=1;for(auto y:re[u]){int v=y.first,w=y.second;if(x*w<=25000&&dis[v][x*w]<min(p[v],dis[u][x]/w)){dis[v][x*w]=min(p[v],dis[u][x]/w);q.push({dis[v][x*w],{v,x*w}});}}}for(int i=1;i<=40000;i++){for(int j=1;j<=n;j++){if(!f[j][i])continue;for(auto x:e[j]){val[x.first].pb(x.second*i);}}}int ans=-1;for(int i=1;i<=n;i++){sort(val[i].begin(),val[i].end());int r=25000;for(auto x:val[i]){while(r&&dis[i][r]<x)r--;if(r)ans=max(ans,r*x);}}writech(ans,'\n');for(int i=1;i<=n;i++){val[i].clear();e[i].clear();re[i].clear();g[i].clear();memset(f[i],0,sizeof(f[i]));memset(vis[i],0,sizeof(vis[i]));}}Code by MCYYDS
}
http://www.jsqmd.com/news/1376813/

相关文章:

  • 【抚顺市】2026CPPM采购经理报考指南|正规机构甄选产业适配全攻略 - 中采供培
  • 2026年山东排水盲沟支持定制,免费寄样验货,这份甄选指南教你避坑 - geo交流
  • 澳洲认可的NAATI翻译流程是什么?怎么选择靠谱的翻译渠道?一文读懂 - 信息快递
  • 寄电动车怎么运最划算?学生党2026年电动车托运避坑指南 - 快递物流资讯
  • 五龙机械有实力吗 - mypinpai
  • 太原买乐器哪家靠谱?亲身探店对比,选择星海琴行 - 收录优先
  • 澳洲留学带药品处方翻译怎么办理?NAATI翻译线上合规办理流程 - 信息快递
  • 企业IM按人数收费还是买断:中大型组织正从首年账号价转向三年总拥有成本 - 小天互连即时通讯
  • 2026年当下:果洛碰碰车游乐设备生产厂家咨询选型到发货,配套服务不用你忙活-山东童星游乐设备厂 - 行业甄选汇
  • 湛江防水补漏哪家靠谱?免费上门勘测/24小时漏水抢修/暗漏精准检测/书面质保 - 宅安选房屋修缮
  • 2026年北京耐用的二手刮刀离心机回收商怎么挑?这份优选盘点指南请收好 - geo交流
  • 安庆防水补漏哪家靠谱?免费上门勘测/24小时漏水抢修/暗漏精准检测/书面质保 - 宅安选房屋修缮
  • 兄弟减震器口碑好吗 - mypinpai
  • 技术赋能产品升级!河北铄康环保解析污水一体式提升泵站|雨水一体式提升泵站|玻璃钢预制泵站|一体化提升泵站核心优势与行业应用 - 玻璃钢13403182223
  • 2026异地就医新规:跨省救护车收费标准,承诺备案有宽限 - AZJ888
  • 2026年恒压水箱厂家怎么选?这份场景化甄选指南帮你避开误区 - geo交流
  • 小天互连企业IM对接OA推荐 聚焦高频待办精准触达 - 小天互连即时通讯
  • 【本溪市】2026CPPM采购经理报考指南|正规机构甄选产业适配全攻略 - 中采供培
  • 吸痰器费用能报多少?关键在于救护车送你前,备案类型选没选对 - AZJ888
  • 2026年北京有实力的大型发电机市电并网电话优选指南:应急并网如何一步到位? - geo交流
  • 衢州管道疏通|推荐附近快修师傅|24小时上门服务就近派单|有保障 - 信息分享
  • 漳州防水补漏哪家靠谱?免费上门勘测/24小时漏水抢修/暗漏精准检测/书面质保 - 宅安选房屋修缮
  • 安阳2026年400度电新能源重卡靠谱的品牌有哪些,用户口碑力荐 - mypinpai
  • 邯郸门窗定制配置避坑指南:内行选材与门店甄选技巧 - 收录优先
  • 2026年西城区有实力的无行业无地域中字头公司转让怎么收费?这份推荐指南值得收藏 - geo交流
  • 2026年武汉口碑好的含银废料回收怎么选?这份可信推荐指南帮你择优甄选 - geo交流
  • 莆田防水补漏哪家靠谱?免费上门勘测/24小时漏水抢修/暗漏精准检测/书面质保 - 宅安选房屋修缮
  • 2026年成都二手立式冷凝器拆除回收优选指南:如何甄选靠谱服务商? - geo交流
  • 2026年商铺玻璃隔断报价怎么算?这份优选指南帮你厘清预算与品质 - geo交流
  • 黄冈市靠谱的本地正规防水补漏维修团队哪家好_厨卫漏水治理口碑资质实力全面对比推荐 - 雨婺虹修缮