ABC362
A
link
判断即可。。。
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int r,g,b;
string c;
signed main(){
cin >> r >> g >> b >> c;
if(c == "Red") cout << min(g,b);
else if(c == "Blue") cout << min(r,g);
else cout << min(r,b);
return 0;
}
B
link
根据距离公式算三边距离,再根据勾股定理计算是否为
注意
点击查看代码
#include<bits/stdc++.h>
using namespace std;
int xa,ya,xb,yb,xc,yc;
double dis(int x,int y,int l,int r){
return sqrt(1.0*(x-l)*(x-l)+1.0*(y-r)*(y-r));
}
signed main(){
cin >> xa >> ya >> xb >> yb >> xc >> yc;
double a[3] = {dis(xa,ya,xb,yb),
dis(xa,ya,xc,yc),dis(xb,yb,xc,yc)};
sort(a,a+3);
double t = a[0]*a[0]+a[1]*a[1];
double tt = a[2]*a[2];
if(abs(t-tt) < 1e-6) cout << "Yes";
else cout << "No";
return 0;
}
C
link
首先,判断一下是否可能:把所有的
如果
那么怎么求解呢?
我们先让所有的
点击查看代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,suml,sumr;
int l[200005],r[200005];
int a[200005];
signed main(){
cin >> n;
for(int i = 1;i <= n;++ i){
cin >> l[i] >> r[i];
suml += l[i];
sumr += r[i];
a[i] = l[i];
}
if(suml <= 0&&sumr >= 0) cout << "Yes\n";
else{
cout << "No";
return 0;
}
int tmp = -1*suml;
for(int i = 1;i <= n;++ i){
if(tmp > r[i]-l[i]){
a[i] = r[i];
tmp -= r[i]-l[i];
}
else{
a[i] += tmp;
break;
}
}
for(int i = 1;i <= n;++ i)
cout << a[i] << " ";
return 0;
}
D
link
这个题就是最短路。
对于一条边,将终点的点权加到边权里去,跑最短路即可,最后把起点的点权加上。
点击查看代码
#include<bits/stdc++.h>
#define pii pair<int,int>
#define int long long
using namespace std;
int n,m;
int a[200005];
vector<pair<int,int> > ed[200005];
int ds[200005];
const int inf = 1e18;
bool vs[200005];
void dijkstra(int s){
for(int i = 1;i <= n;++ i)
ds[i] = inf;
ds[s] = a[s];
priority_queue<pii,vector<pii>,greater<pii> >q;
q.push({ds[s],s});
while(!q.empty()){
int t = q.top().second;q.pop();
if(vs[t]) continue;
vs[t] = 1;
for(int i = 0;i < ed[t].size();++ i){
int j = ed[t][i].first,
w = ed[t][i].second;
if(ds[j] > ds[t]+w){
ds[j] = ds[t]+w;
q.push({ds[j],j});
}
}
}
}
signed main(){
cin >> n >> m;
for(int i = 1;i <= n;++ i)
cin >> a[i];
for(int i = 1;i <= m;++ i){
int u,v,w;
cin >> u >> v >> w;
ed[u].push_back({v,w+a[v]});
ed[v].push_back({u,w+a[u]});
}
dijkstra(1);
for(int i = 2;i <= n;++ i)
cout << ds[i] << " ";
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!