CCF認證 201503-1 影象旋轉(100分) 201503-2 數字排序(100分)
阿新 • • 發佈:2018-12-10
CCF認證2015-03-1 影象旋轉
問題描述
旋轉是影象處理的基本操作,在這個問題中,你需要將一個影象逆時針旋轉90度。
計算機中的影象表示可以用一個矩陣來表示,為了旋轉一個影象,只需要將對應的矩陣旋轉即可。
輸入格式
輸入的第一行包含兩個整數n, m,分別表示影象矩陣的行數和列數。
接下來n行每行包含m個整數,表示輸入的影象。
輸出格式
輸出m行,每行包含n個整數,表示原始矩陣逆時針旋轉90度後的矩陣。
樣例輸入
2 3
1 5 3
3 2 4
樣例輸出
3 4
5 2
1 3
評測用例規模與約定
1 ≤ n
#include<iostream> #include<cstdio> using namespace std; int a[1010][1010]; int main() { int n,m; scanf("%d%d",&n,&m); for(int i=0;i<n;i++) for(int j=0;j<m;j++) scanf("%d",&a[i][j]); for(int i=m-1;i>=0;i--) { for(int j=0;j<n;j++) { if(j==0) printf("%d",a[j][i]); else printf(" %d",a[j][i]); } printf("\n"); } return 0; }
CCF認證201503-2 數字排序
問題描述
給定n個整數,請統計出每個整數出現的次數,按出現次數從多到少的順序輸出。
輸入格式
輸入的第一行包含一個整數n,表示給定數字的個數。
第二行包含n個整數,相鄰的整數之間用一個空格分隔,表示所給定的整數。
輸出格式
輸出多行,每行包含兩個整數,分別表示一個給定的整數和它出現的次數。按出現次數遞減的順序輸出。如果兩個整數出現的次數一樣多,則先輸出值較小的,然後輸出值較大的。
樣例輸入
12
5 2 3 3 1 3 4 2 5 2 3 5
樣例輸出
3 4
2 3
5 3
1 1
4 1
評測用例規模與約定
1 ≤ n ≤ 1000,給出的數都是不超過1000的非負整數。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct node{
int id;
int cnt;
bool operator <(const node &u)const
{
if(cnt!=u.cnt) return cnt>u.cnt;
return id<u.id;
}
}m[1010];
int main()
{
int n,a;
scanf("%d",&n);
for(int i=0;i<1010;i++)
m[i].id=i,m[i].cnt=0;
for(int i=0;i<n;i++)
{
scanf("%d",&a);
m[a].cnt++;
}
sort(m,m+1010);
int i=0;
while(m[i].cnt>=1){
printf("%d %d\n",m[i].id,m[i].cnt);
i++;
}
return 0;
}