E. Air Conditioners

可以图论虚拟点做,也可以直接DP

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int,int>;
#define int long long
const int N = 1e6+10;
const int inf = 0x3f3f3f3f;
const int mod = 1e9+7;
int gcd(int a,int b){return b?a:gcd(b,a%b);}
int lcm(int a,int b){return a*b/gcd(a,b);}
int qmi(int a,int b,int mod){int res=1;while(b){if(b&1)res=res*a%mod;b>>=1;a=a*a%mod;}return res;}


int n,q,m;
int pos[N],temp[N];
// int e[N],ne[N],w[N],h[N],idx;
// void add(int a,int b,int c){
	// e[idx] = b,ne[idx] = h[a],w[idx] = c,h[a] = idx++;
// }
int dp[N];

void solve()
{
	cin>>n>>m;
	for(int i=0;i<=n+1;i++)dp[i] = 0x3f3f3f3f;
	for(int i=1;i<=m;i++)cin>>pos[i];
	for(int i=1;i<=m;i++)cin>>temp[i];
	
	for(int i=1;i<=m;i++)dp[pos[i]] =  temp[i];
	
	for(int i=1;i<=n;i++)dp[i] = min(dp[i],dp[i-1]+1);
	for(int i=n;i>=1;--i)dp[i] = min(dp[i],dp[i+1]+1);
	
	for(int i=1;i<=n;i++)cout<<dp[i]<<" \n"[i==n];
	
	

}

signed main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int _;
	cin>>_;
	//_ = 1;
	while(_--)solve();
	return 0;
}
cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int,int>;
#define int long long
const int N = 1e6+10;
const int inf = 0x3f3f3f3f;
const int mod = 1e9+7;
int gcd(int a,int b){return b?a:gcd(b,a%b);}
int lcm(int a,int b){return a*b/gcd(a,b);}
int qmi(int a,int b,int mod){int res=1;while(b){if(b&1)res=res*a%mod;b>>=1;a=a*a%mod;}return res;}


int n,q,m;
int pos[N],temp[N];
// int e[N],ne[N],w[N],h[N],idx;
// void add(int a,int b,int c){
	// e[idx] = b,ne[idx] = h[a],w[idx] = c,h[a] = idx++;
// }
int dp[N];

void solve()
{
	cin>>n>>m;
	for(int i=0;i<=n+1;i++)dp[i] = 0x3f3f3f3f;
	for(int i=1;i<=m;i++)cin>>pos[i];
	for(int i=1;i<=m;i++)cin>>temp[i];
	
	for(int i=1;i<=m;i++)dp[pos[i]] =  temp[i];
	
	for(int i=1;i<=n;i++)dp[i] = min(dp[i],dp[i-1]+1);
	for(int i=n;i>=1;--i)dp[i] = min(dp[i],dp[i+1]+1);
	
	for(int i=1;i<=n;i++)cout<<dp[i]<<" \n"[i==n];
	
	

}

signed main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	int _;
	cin>>_;
	//_ = 1;
	while(_--)solve();
	return 0;
}
相关推荐
_OP_CHEN2 分钟前
【从零开始的Qt开发指南】(十一)Qt常用控件之多元素控件与容器类控件深度解析
开发语言·qt·前端开发·多元素控件·gui开发·qt常用控件·容器类控件
Robot侠2 分钟前
视觉语言导航从入门到精通(二)
开发语言·人工智能·python·llm·vln
SmoothSailingT3 分钟前
C#——Lazy<T>懒加载机制
开发语言·单例模式·c#·懒加载
AI科技星4 分钟前
质量定义方程的物理数学融合与求导验证
数据结构·人工智能·算法·机器学习·重构
小羊学伽瓦11 分钟前
ThreadLocal
java·jvm·算法
程芯带你刷C语言简单算法题11 分钟前
Day30~实现strcmp、strncmp、strchr、strpbrk
c语言·学习·算法·c
桓峰基因11 分钟前
SCS 60.单细胞空间转录组空间聚类(SPATA2)
人工智能·算法·机器学习·数据挖掘·聚类
程序喵大人12 分钟前
SQLITE问题整理
开发语言·数据库·c++·sqlite
Neolnfra13 分钟前
文件包含漏洞终极指南
开发语言·安全·web安全·网络安全·系统安全·php·可信计算技术
简单点好不好13 分钟前
2025--简单点--python之状态模式
开发语言·python·状态模式