题解 CF1740B
题解 CF1740B
这个题简单贪心
可能是CF的图片过于具有迷惑性,这里放一个改动的图方便大家理解
我们可以发现,如果让最长边与其他的矩形相邻,就可以让被遮挡的边最大,所以我们直接让最长边挨着相邻矩形即可,然后计算这个矩形的周长即可
计算周长就就是个很简单的事情了
只需要把这个不规则图形中红色的线段以及蓝色的线段加起来就可以了
红色的线段明显是 每个矩形短边 \(\times 2\),蓝色线段就是所有矩形中的最长的长边 \(\times 2\)
/*
#date :10/29/2022
#editor :apple_tyr/Apollo_tyr
#problem or
contest:CF1740B
*/
#include<map>
#include<cstdio>
#include<string>
#include<algorithm>
#include<iostream>
#define int long long
using namespace std;
const int N=2e5+10;
int T,n;
struct Node{
int x,y;
bool friend operator < (Node a,Node b){
return max(a.x,a.y)<max(b.x,b.y);
}
}edge[N];
signed main(){
scanf("%lld",&T);
while(T--){
scanf("%lld",&n);
for(int i=1;i<=n;i++){
scanf("%lld%lld",&edge[i].x,&edge[i].y);
}
sort(edge+1,edge+1+n);
int len=0;
for(int i=1;i<=n;i++){
len+=min(edge[i].x,edge[i].y);
}
// printf("%d")
printf("%lld\n",(max(edge[n].x,edge[n].y)+len)*2);
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】