首页 > 其他分享 >P5086 的题解

P5086 的题解

时间:2024-08-05 14:28:07浏览次数:8  
标签:int 题解 define txt P5086 getchar

(一)

将输入的四个数差分得到三个值,这三个值相同的两个坐标符合条件。

用 map 存储记录这三个值的结构体,然后用 vector 存储下标。

(二)

AC 代码。

#include<bits/stdc++.h>
#define db double
#define pb push_back
#define fi first
#define se second
#define mkp make_pair
#define pii pair<int,int>
using namespace std;
inline int read(){
    int x=0,f=1;char c=getchar();
    while(c<'0'||c>'9'){if(c=='-')f=-f;c=getchar();}
    while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    return x*f; 
}
struct node{
	int x,y,z;
	bool operator<(const node &p)const{
		return x<p.x||x==p.x&&y<p.y||x==p.x&&y==p.y&&z<p.z;
	}
};
map<node,vector<int> >mp;
int n,ans1=INT_MAX,ans2;
signed main(){
    #ifndef ONLINE_JUDGE
    freopen("in.txt","r",stdin);
    freopen("out.txt","w",stdout);
    #endif
    n=read();
    for(int i=1;i<=n;i++){
    	int a=read(),b=read(),c=read(),d=read();
    	mp[(node){b-a,c-b,d-c}].pb(i);
    }
    for(auto t:mp){
    	vector<int>v=t.se;
    	if(v.size()<2)continue;
    	for(int i=0;i<v.size()-1;i++)
    		ans1=min(ans1,v[i+1]-v[i]);
    	ans2=max(ans2,v[v.size()-1]+v[v.size()-2]);
    }
    printf("%d %d\n",ans1,ans2);
    return 0;
}

标签:int,题解,define,txt,P5086,getchar
From: https://www.cnblogs.com/Jh763878/p/18343157

相关文章

  • [ARC118C] Coprime Set 题解
    题目传送门(洛谷)题目传送门(atcoder)Step1理解题意输入一个数nnn要求你构造一个长度为n......
  • 洛谷P10839 【MX-J2-T0】Turtle and Equations题解
    灰常简单!蒟蒻带您写代码!题目理解题目传送门题目描述给你四个正整数。现在你有一条算式。你需要判断能否在两个方框内分别填入三种运算符 之一(运算符可以重复使用),使得算式运算的结果等于。题目分析分析后我们能够发现,只要一一列举出所有能够输出的情况,剩下的输出即可......
  • 若依框架导入阿里OSS报错问题解决方案
    [INFO]ruoyi-quartz.......................................FAILURE[0.504s][INFO]ruoyi-generator....................................SKIPPED[INFO]ruoyi-admin........................................SKIPPED[INFO]---------------------------------......
  • 洛谷P4910题解
    题目大意现在穿T次手串,每根手串的长度分别为不同的n,有木和金两种珠子,相邻两颗珠子必须有一个是金。题目思路分析我们现在设穿到第n个珠子时用金的方案数为f[1][n],用木的方案数为f[0][n]如果第n个珠子为金,那么前一颗珠子是什么都可以,因此f[1][n]=f[1][n-1]+f[0][n-1]而如果......
  • ARC181题解(A-D)
    A-SortLeftandRight答案为0即已经排序。考虑答案为1的情况:一定是存在一个\(p\),使得\(\min_{i=1}^{p}a_i=p\)且\(a_p=p\),这时只要选择\(p\)即可。考虑答案为2的情况:如果\(a_1\neqn\operatorname{or}a_n\neq1\),一定可以通过先操作某个数,把\(1\)或者\(n\)......
  • Java环境变量配置的最佳实践和常见问题解决方案
    Java环境变量配置的最佳实践和常见问题解决方案大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在Java开发中,环境变量的配置是保证应用程序顺利运行的关键。无论是在本地开发环境还是生产环境,正确配置Java环境变量不仅能提升开发效率,还能避免许多常见......
  • Codeforces Round 891 (div.3) D题解析
    CodeForcesRound898(div4)D题.StrongVertices大致思路对于题目的给的式子,au-av>=bu-bv,我们可以通过移项得到au-bu>=av-bv,这样就能够构造出来一个ai-bi的项出来对于构造出来的项,我们可以遍历一遍用数组把每一个项存起来,找到值最大的项,值最大的项所对应的下标就是强顶......
  • 【秋招笔试】2024-08-03-科大讯飞秋招笔试题(算法岗)-三语言题解(CPP/Python/Java)
    ......
  • Luogu P1777 帮助 题解 [ 紫 ] [ 线性 dp ] [ 状压 dp ]
    帮助:大毒瘤!!!调了我2h,拍了我2h,最后没调出来,重写才AC。wdnmd。思路这题主要是线性dp,而状压dp只是最后在统计答案时的一个辅助。首先定义\(dp[i][j][k]\)为考虑前\(i\)本书,已经抽出来了\(j\)本,最后没被抽出来的一本书是高度\(k\)的最小混乱度。每次放入的书与最后一位......
  • Luogu P10842 Piggy and Trees 题解 [ 绿 ] [ 拆边 ] [ 贡献思维 ]
    PiggyandTrees:把路径拆成边的思维题。思路一看到这题的路径,就想到了LuoguP3177树上染色这题化路径为边的贡献,分别计算的思维。那么对于此题,先来观察题目里式子的意思:对于树上的每个无序点对,求出树上每个点到这些点对之间的最短路径的距离之和。枚举点对对应的就是前两......