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;
}
相关推荐
djarmy27 分钟前
MAIN.c(1): warning C318: can’t open file ‘STC8G.H’ 报错 解决 分析
c语言·开发语言·mongodb
HEJOO91 小时前
深入理解 Java volatile 关键字:原理、用法与常见误区
java·开发语言·spring
曹牧1 小时前
Java:no content to map due to end of input
java·开发语言
梦梦代码精1 小时前
《回收租赁系统技术选型避坑指南:业务闭环与二开自由度详解》
开发语言·低代码·docker·开源·代码规范
隔窗听雨眠1 小时前
记一次SQL Server数据库性能分析:从CPU100%到单配置修复的完整诊断
开发语言·数据库·php
David猪大卫1 小时前
【C++修炼】智能指针使用及原理
开发语言·c++·经验分享·笔记·学习·考研·面试
charlie1145141911 小时前
现代Qt开发之图像处理进阶:像素操作与格式转换
开发语言·图像处理·qt
李永奉2 小时前
中科蓝讯SDK开发-BT893x 面条耳机连接vivo手机后连接APP端,最后手机端设置页面手动断开蓝牙连接,此时耳机端假断开
c语言·开发语言·嵌入式硬件·物联网·智能手机·电脑
2601_967760782 小时前
2026年PDF压缩与页码添加工具技术实测:性能、算法与本地化适配深度对比
算法·pdf
秦老师Q2 小时前
php零基础入门到实战,从语法到框架,一篇搞定
开发语言·php