#10764. 枚举算法(NOIP2012)坐标统计

枚举算法(NOIP2012)坐标统计

(NOIP2012)坐标统计

输入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;
}

①处应填( )。
{{ select(1) }}

  • i
  • 0
  • x[i]
  • y[i]

②处应填( )。
{{ select(2) }}

  • y[i]<y[j]
  • y[j]<y[i]
  • y[i]<=y[j]
  • y[j]<=y[i]

③处应填( )。
{{ select(3) }}

  • f[i]=x[i]
  • f[i]=0
  • f[i]++
  • f[i]=y[i]

④处应填( )。
{{ select(4) }}

  • f[i]>max_f
  • f[i]<max_f
  • f[i]>=max_f
  • f[i]<=max_f

⑤处应填( )。
{{ select(5) }}

  • ans=i
  • ans<max_f
  • ans=f[i]
  • ans=0