NOIP 普及组初赛 · NOIP 2012 普及组初赛试题 第 27 题

完善程序 · 答案 0y[j]<y[i]++f[i]f[i]=f[i]+1f[i]++max_f<=f[i]f[i]>=max_fans=i · 考点:输入输出、位运算、分支结构、循环结构

← 整套速查表 NOIP 普及组初赛 全部真题

题目

完善程序

(坐标统计)输入 $n$ 个整点在平面上的坐标。对于每个点,可以控制所有位于它左下方的点(即 $x,y$ 坐标都比它小),它可以控制的点的数目称为“战斗力”。依次输出每个点的战斗力,最后输出战斗力最高的点的编号(如果若干个点的战斗力并列最高,输出其中最大的编号)。

#include <iostream>
using namespace std;
const int SIZE =100;
int x[SIZE],y[SIZE],f[SIZE];
int n,i,j,max_f,ans;
int main()
{
	cin>>n;
	for(i=1;i<=n;i++) cin>>x[i]>>y[i];
	max_f=0;
	for(i=1;i<=n;i++)
	{
		f[i]= [  ①   ];
		for(j=1;j<=n;j++)
		{
			if(x[j]<x[i] && [   ②    ])
			[      ③      ] ;
		}
		if( [     ④       ])
		{
			max_f=f[i];
			[    ⑤    ];	
		}
	}
	for(i=1;i<=n;i++) cout<<f[i]<<endl;
	cout<<ans<<endl;
	return 0;	
}
答案:0y[j]<y[i]++f[i]f[i]=f[i]+1f[i]++max_f<=f[i]f[i]>=max_fans=i

考点

输入输出位运算 讲解 →位运算 真题汇总 →分支结构循环结构

解题思维

看到'左下方'→先想x和y都要严格小于

常见错误

漏y条件致战斗力虚高;更新最大值用'>'会错选小编号

详细解析(节选)

考点:二维偏序统计|分支结构|循环结构

程序在做什么

输入n个点,对每个点统计坐标均更小的点个数(战斗力),输出各战斗力及最大战斗力对应最大编号。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断