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;
}
相关推荐
wabs6661 分钟前
关于动态规划【力扣583.两个字符串的删除操作的思考】
算法·leetcode·动态规划
cui_ruicheng4 分钟前
Python从入门到实战(六):非序列容器
开发语言·python
可编程芯片开发8 分钟前
空气流量和空气压力参数解耦系统simulink建模与仿真
算法
小小龙学IT8 分钟前
C++ 并发编程深度解析:从内存模型到无锁数据结构
数据结构·c++
西西学代码11 分钟前
Flutter---底部导航栏(2)
开发语言·javascript·flutter
legendary_16312 分钟前
SINK芯片:Type-C统一供电时代的小家电核心方案
c语言·开发语言·人工智能·智能手机
momo14 分钟前
JAVA基础知识
java·开发语言
_Doubletful31 分钟前
妙用位运算:解构汉明距离至100%(提供分析与多解)
c语言·算法·leetcode
Keven_111 小时前
AcWing算法提高课思路速查:搜索
算法·搜索
沙蒿同学1 小时前
当古诗词遇上 AI:从 38 万句诗词中取一个好名字
python·算法·架构