首页 > 其他分享 >D. Skipping

D. Skipping

时间:2024-10-23 23:01:05浏览次数:1  
标签:val int long 400005 Skipping push n1

  • 【知难而退】,难以实时维护一个位置对应的下一个位置,那就通过一定的性质避开这个问题
  • 【枚举】到达的最右边的位置
  • 真没想到在这种特殊图上也能卡spfa啊……
点击查看代码
#include <bits/stdc++.h>
using namespace std;
vector<int>a[400005];
vector<int>c[400005];
int val[400005],b[400005];
long long sum[400005],d[400005];
bool v[400005];
/*
queue<int>q;
void spfa()
{
	d[1]=0;
	v[1]=true;
	q.push(1);
	while(q.size())
	{
		int n1=q.front();
		q.pop();
		v[n1]=false;
		for(int i=0;i<a[n1].size();i++)
		{
			if(d[n1]+c[n1][i]<d[a[n1][i]])
			{
				d[a[n1][i]]=d[n1]+c[n1][i];
				if(!v[a[n1][i]])
				{
					v[a[n1][i]]=true;
					q.push(a[n1][i]);
				}
			}
		}
	}
}
*/
typedef pair<long long,int> cc;
priority_queue<cc,vector<cc>,greater<cc> >q; 
void dijkstra()
{
	d[1]=0;
	q.push(make_pair(0,1));
	while(q.size())
	{
		int n1=q.top().second;
		q.pop();
		if(v[n1])
		{
			continue;
		}
		v[n1]=true;
		for(int i=0;i<a[n1].size();i++)
		{
			if(d[n1]+c[n1][i]<d[a[n1][i]])
			{
				d[a[n1][i]]=d[n1]+c[n1][i];
				q.push(make_pair(d[a[n1][i]],a[n1][i]));
			} 
		}
	}
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int T;
	cin>>T;
	while(T--)
	{
		int n;
		cin>>n;
		for(int i=1;i<=n;i++)
		{
			a[i].clear();
			c[i].clear();
			d[i]=LLONG_MAX;
			v[i]=false;
		}
		for(int i=1;i<=n;i++)
		{
			cin>>val[i];
			sum[i]=sum[i-1]+val[i];
		}
		for(int i=1;i<=n;i++)
		{
			cin>>b[i];
			if(i>1)
			{
				a[i].push_back(i-1);
				c[i].push_back(0); 
			}
			a[i].push_back(b[i]);
			c[i].push_back(val[i]);
		}
		dijkstra();
		long long ans=0;
		for(int i=1;i<=n;i++)
		{
			ans=max(ans,sum[i]-d[i]);
		}
		cout<<ans<<"\n";
	}
	return 0;
}

标签:val,int,long,400005,Skipping,push,n1
From: https://www.cnblogs.com/watersail/p/18494557

相关文章

  • flutter Warning: CocoaPods is installed but broken. Skipping pod install. You
    flutterWarning:CocoaPodsisinstalledbutbroken.Skippingpodinstall.YouappeartohaveCocoaPodsins确保你已经安装了CocoaPods并可以正常使用:1.flutterclean2.flutterpubget3.cdios4.podinstall5.退出vscode,并重新打开6.再次运行项目运行后如果......
  • Skipping invalid relocation target,
      [55.732900]module:x86/modules:Skippinginvalidrelocationtarget,existingvalueisnonzerofortype1,loc0000000095d22a08,valffffffffc07aa525root@ubuntux86:#uname-aLinuxubuntux865.13.0-39-generic#44~20.04.1-UbuntuSMPThuMar2416:......
  • pip 安装包时提示 "WARNING: Skipping xxx due to invalid metadata entry 'name'"
    我最近在使用pip安装包的时候经常遇到如下警告:WARNING:Skipping/opt/homebrew/lib/python3.11/site-packages/numpy-1.26.3.dist-infoduetoinvalidmetadataentry'name'WARNING:Skipping/opt/homebrew/lib/python3.11/site-packages/protobuf-4.25.2-py3.11.egg-info......
  • Teamcenter AWC开发:调用SOA时,报错No SOA service for Bom-2008-06-StructureManagemen
    1、报错:2、分析:我一直在纠结,究竟是SOA接口报错。还是没有这个SOA接口服务。因为在AWC生成的SOA文档,是有这个接口和服务的。后来明白了。如果是SOA接口报错。在网络中看到这个接口是有响应的。也就是有返回的。 但是NoSOAservice报错,网络中,看到接口时没有返回的。 3......
  • Codeforces Round 885 (Div. 2)E. Vika and Stone Skipping(数学,质因数分解)
    题目链接:https://codeforces.com/problemset/problem/1848/E 大致题意: 打水漂,某人在海岸线以f(正整数)的力量扔出石头,会在f,f+(f-1),f+(f-1)+(f-2),........,f+(f-1)+.....+2+1,的位置接触水面; 现在给出坐标x和q次询问,每次询问给出一个y值,将x=x*y;假设石头在x的位置接触水面,问有多少......
  • CodeForces 1848E Vika and Stone Skipping
    洛谷传送门CF传送门感觉比这场的F简单。发现我们要进行\(x\)不断乘一些数然后求答案的操作,猜测答案与\(x\)的因数有关。如果你对数字比较敏感,不难发现答案就是\(x\)的奇因子个数。官方题解的证明:设\(x=f+(f-1)+\cdots+(f-(c-1))\),由等差数列求和公......
  • 解决AQDefaultDevice (173): skipping input stream 的输出问题
    升级到Xcode8.0以后再使用AVFoundation框架的AVPlayer进行播放会一直打印AQDefaultDevice(173):skippinginputstream000x0,这不是工程的问题,只需要在Xcode中设......
  • 【Swift 60秒】34 - Skipping items
    0x00LessonAsyou’veseen,the​​break​​​keywordexitsaloop.Butifyoujustwantto​​skip​​​thecurrentitemandcontinueontothenextone,y......