题目名字
Spit Problem
https://www.luogu.com.cn/problem/CF29A?contestId=149253
题意
找数轴上的点 使xi+di=xj而且xj+dj=xi
思路
先输入,再标记,遍历,然后判断 ,输出
坑点
- i不等于j
算法一:循环 判断
时间复杂度
入门
实现步骤
- 定义输入
- 标记遍历
- 判断输出
代码
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
//输入数量
int x[n],d[n];
for(int i=0;i<n;i++){
cin>>x[i]>>d[i];
//输入位置系数
}
bool found=false;//标记
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++)
//遍历
{
if(x[i]+d[i]==x[j]&&x[j]+d[j]==x[i])
{
found=true;
break;
}//判断
}
if(found)
{
break;
}
}
if(found){
cout<<"YES";
}
else{
cout<<"NO";
}
return 0;
}
总结
对于这道题,写题的时候没有看清楚题目,只盯着英文题干看,没仔细看下面的中文翻译,本来就想不太出来,这下更想不出来了。后来结合代码仔细又看了一遍,悟了。