• 第四届CCF软件能力认证


    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, m ≤ 1,000,矩阵中的数都是不超过1000的非负整数。

     1 # include <iostream>
     2 # include <cstdio>
     3 # include <cstring>
     4 # include <algorithm>
     5 # include <cmath>
     6 # define LL long long
     7 using namespace std ;
     8 
     9 int a[1010][1010] ;
    10 
    11 int main ()
    12 {
    13     //freopen("in.txt","r",stdin) ;
    14     int n , m ;
    15     scanf("%d%d" , &n , &m) ;
    16     int i , j ;
    17     for (i = 0 ; i < n ; i++)
    18         for (j = 0 ; j < m ; j++)
    19             scanf("%d" , &a[i][j]) ;
    20     for (i = m-1 ; i >= 0 ; i--)
    21     {
    22         for (j = 0 ; j < n ; j++)
    23         {
    24             printf("%d " , a[j][i]) ;
    25         }
    26         printf("
    ") ;
    27     }
    28 
    29 
    30     return 0 ;
    31 }
    View Code

    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的非负整数。

     1 # include <iostream>
     2 # include <cstdio>
     3 # include <cstring>
     4 # include <algorithm>
     5 # include <cmath>
     6 # define LL long long
     7 using namespace std ;
     8 
     9 struct shu
    10 {
    11     int num ;
    12     int id ;
    13 }a[1010];
    14 
    15 bool cmp(shu x , shu y)
    16 {
    17     if (x.num == y.num)
    18         return x.id < y.id ;
    19     else
    20         return x.num > y.num ;
    21 }
    22 
    23 int main ()
    24 {
    25     //freopen("in.txt","r",stdin) ;
    26     int n ;
    27     scanf("%d" , &n) ;
    28     int i , x ;
    29     for (i = 1 ; i <= 1005 ; i++)
    30     {
    31         a[i].id = i ;
    32         a[i].num = 0 ;
    33     }
    34 
    35     while(n--)
    36     {
    37         scanf("%d" , &x) ;
    38         a[x].num++ ;
    39     }
    40     sort(a+1 , a+1005, cmp) ;
    41     for (i = 1 ; i <= 1005 ; i++)
    42     {
    43         if (a[i].num == 0)
    44             break ;
    45         printf("%d %d
    " , a[i].id , a[i].num) ;
    46     }
    47 
    48 
    49     return 0 ;
    50 }
    View Code

    3.节日

    问题描述

      有一类节日的日期并不是固定的,而是以“a月的第b个星期c”的形式定下来的,比如说母亲节就定为每年的五月的第二个星期日。
      现在,给你a,b,c和y1, y2(1850 ≤ y1, y2 ≤ 2050),希望你输出从公元y1年到公元y2年间的每年的a月的第b个星期c的日期。
      提示:关于闰年的规则:年份是400的整数倍时是闰年,否则年份是4的倍数并且不是100的倍数时是闰年,其他年份都不是闰年。例如1900年就不是闰年,而2000年是闰年。
      为了方便你推算,已知1850年1月1日是星期二。

    输入格式

      输入包含恰好一行,有五个整数a, b, c, y1, y2。其中c=1, 2, ……, 6, 7分别表示星期一、二、……、六、日。

    输出格式

      对于y1和y2之间的每一个年份,包括y1和y2,按照年份从小到大的顺序输出一行。
      如果该年的a月第b个星期c确实存在,则以"yyyy/mm/dd"的格式输出,即输出四位数的年份,两位数的月份,两位数的日期,中间用斜杠“/”分隔,位数不足时前补零。
      如果该年的a月第b个星期c并不存在,则输出"none"(不包含双引号)。

    样例输入

    5 2 7 2014 2015

    样例输出

    2014/05/11
    2015/05/10

    评测用例规模与约定

      所有评测用例都满足:1 ≤ a ≤ 12,1 ≤ b ≤ 5,1 ≤ c ≤ 7,1850 ≤ y1, y2 ≤ 2050。

    4.网络延时

    省略..

    5.

    最小花费

    问题描述

      C国共有n个城市。有n-1条双向道路,每条道路连接两个城市,任意两个城市之间能互相到达。小R来到C国旅行,他共规划了m条旅行的路线,第i条旅行路线的起点是si,终点是ti。在旅行过程中,小R每行走一单位长度的路需要吃一单位的食物。C国的食物只能在各个城市中买到,而且不同城市的食物价格可能不同。
      然而,小R不希望在旅行中为了购买较低价的粮食而绕远路,因此他总会选择最近的路走。现在,请你计算小R规划的每条旅行路线的最小花费是多少。

    输入格式

      第一行包含2个整数n和m。
      第二行包含n个整数。第i个整数wi表示城市i的食物价格。
      接下来n-1行,每行包括3个整数u, v, e,表示城市u和城市v之间有一条长为e的双向道路。
      接下来m行,每行包含2个整数si和ti,分别表示一条旅行路线的起点和终点。

    输出格式

      输出m行,分别代表每一条旅行方案的最小花费。

    样例输入

    6 4
    1 7 3 2 5 6
    1 2 4
    1 3 5
    2 4 1
    3 5 2
    3 6 1
    2 5
    4 6
    6 4
    5 6

    样例输出

    35
    16
    26
    13

    样例说明

      对于第一条路线,小R会经过2->1->3->5。其中在城市2处以7的价格购买4单位粮食,到城市1时全部吃完,并用1的价格购买7单位粮食,然后到达终点。

    评测用例规模与约定

      前10%的评测用例满足:n, m ≤ 20, wi ≤ 20;
      前30%的评测用例满足:n, m ≤ 200;
      另有40%的评测用例满足:一个城市至多与其它两个城市相连。
      所有评测用例都满足:1 ≤ n, m ≤ 105,1 ≤ wi ≤ 106,1 ≤ e ≤ 10000。

  • 相关阅读:
    vue的选项
    css(3)基础知识查漏补缺
    总结获取网页相关的一些宽高
    vue的全局api(二)
    vue的全局api
    vue的内部指令
    Java File
    Java File IO学习笔记
    systemctl介绍
    java学习笔记一(20180319)
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/4776580.html
Copyright © 2020-2023  润新知