18:肿瘤面积

到底时范围: 
1000ms

内存限制: 
65536kB

描述
于一个恰恰方形的灰度图片及,肿瘤是同片矩形的区域,肿瘤的边缘所当的比如素点在图片中用0表示。其余肿瘤内和肿瘤外之触发都由此255表示。现在要求您编一个先后,总结肿瘤中的比如说素点的个数(不包括肿瘤边缘上的触及)。已领略肿瘤的边缘平行于图像的边缘。

输入
统计,只有发一个测试样例。第一举行有一个整数n,表示正方形图像的边长。其后n行每行有n个整数,取值为0依旧255。整数之间因而一个空格隔开。已知n不浮1000。

输出
输出一行,该行包含一个平头,为务求的瘤子内的诸如素点的个数。

样例输入
5
255 255 255 255 255
255 0 0 0 255
255 0 255 0 255
255 0 0 0 255
255 255 255 255 255

样例输出
1

提示
使利用静态数组来表示图片数,需要以该数组定义成全局变量。

来源
2005~2006文学部统计概论期末考试

 1 #include<iostream>
 2 using namespace std;
 3 int a[1001][1001];
 4 int now=1;
 5 int tot=0;
 6 int hang,lie;
 7 int l_h;
 8 int l_l;
 9 int ans=0;
10 int main() 
11 {
12     int n;
13     cin>>n;
14     for(int i=1;i<=n;i++)
15     {
16         for(int j=1;j<=n;j++)
17         {
18             cin>>a[i][j];
19         }
20     }
21     for(int i=1;i<=n;i++)
22     {
23         for(int j=1;j<=n;j++)
24         {
25             if(a[i-1][j]==0&&a[i-1][j-1]==0&&a[i][j-1]==0&&i!=1&&j!=1)
26             {
27                 hang=i;
28                 lie=j;
29             }
30         }
31     }
32     for(int i=hang;i<=9999;i++)
33     {
34         for(int j=lie;j<=9999;j++)
35         {
36             if(a[i][j]!=0)
37             {
38                 l_l++;
39             }
40             else break;
41         }
42         break;
43     }
44     for(int i=hang;i<=9999;i++)
45     {
46         if(a[i][lie]!=0)
47         {
48             l_h++;
49         }
50         else break;
51     }
52     cout<<l_h*l_l;
53     return 0;
54 }

 

05:分数线划定

到底时范围: 
1000ms

内存限制: 
65536kB

描述
世博会志愿者之采取工作在 A
市如火如荼的拓展。为了挑选最方便的浓眉大眼,A市针对有报名的运动员举办了笔试,笔试分数上边试分线的健儿好进入面试。面试分线因计划录取人数的150%划定,即倘诺计划录取m名志愿者,则面试分数线也名次第m*150%(向下取整)名的健儿的分数,而结尾进面试的运动员也笔试成绩不低于面试分线之具备选手。

现即令伸手您编写程序划定面试分线,并出口所有上边试的运动员的报名号和笔试战表。

输入
先是执行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤
n),中间用一个空格隔开,其中n 表示申请到笔试的健儿总数,m
代表计划用的志愿者人数。输入数据保证m*150%通往下取整后小于等于n。
老二执行到第 n+1
行,每行包括个别独整数,中间用一个空格隔开,分别是运动员的提请号k(1000 ≤ k
≤ 9999)和欠选手的笔试成绩s(1 ≤ s ≤
100)。数据保证运动员的提请号各不相同。

输出
先是执行,有少个整数,用一个空格隔开,第一只整数表示面试分线;第二独整数为上边试的运动员的实在人口。
从今第二推行起先,每行包含两单整数,中间用一个空格隔开,分别代表入面试的健儿的报名号和笔试成绩,按照笔试战绩由高至没有输出,如若成绩一样,则随报名号由小到大的一一输出。

样例输入
6 3
1000 90
3239 88
2390 95
7231 84
1005 95
1001 88

样例输出
88 5
1005 95
2390 95
1000 90
1001 88
3239 88

提示
样例表达:m*150% = 3*150% =
4.5,向下取整后呢4。保证4只人进入面试的分数线为88,但因88暴发重分,所以具有战表超越等于88的选手还好下边试,故最后发生5只人入面试。

来源
NOIP2009复赛 普及组 第二题、

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cstdio>
 4 #include<cstring>
 5 #include<cmath>
 6 using namespace std;
 7 int n,m;
 8 struct s
 9 {
10     int xh;
11     int cj;
12 }a[10001];
13 int comp(const s &a,const s &b)
14 {
15     if(a.cj>b.cj)return 1;
16     if(a.cj<b.cj)return 0;
17     if(a.xh<b.xh)return 1;
18     if(a.xh>b.xh)return 0;
19 }
20 int main()
21 {
22     cin>>n>>m;
23     for(int i=1;i<=n;i++)
24     {
25         cin>>a[i].xh;
26         cin>>a[i].cj;
27     }
28     sort(a+1,a+n+1,comp);
29     /*printf("%s",a[k].xh);
30     printf("%d",a[k].cj);*/
31     int p=(double)(floor)(m*1.5);
32     int now=1;
33     while(1)
34     {
35         if(a[p].cj==a[p+now].cj&&(p+now<=n))
36         {
37             now++;
38         }
39         else 
40         break;
41     }
42     cout<<a[p].cj<<" "<<p+now-1<<endl;
43     for(int i=1;i<=p+now-1;i++)
44     {
45         cout<<a[i].xh<<" ";
46         cout<<a[i].cj<<endl;
47     }
48     return 0;
49 }