zoukankan      html  css  js  c++  java
  • OUC Summer Training #Ⅰ 群里的一次比赛

    View Code
     1 #include <stdio.h>
     2 #include<math.h>
     3 int tr(int x,int y,int z)
     4 {
     5     if(x+y>z&&y+z>x&&x+z>y&&abs(x-y)<z&&abs(y-z)<x&&abs(x-z)<y)
     6     return 1;
     7     else
     8     return 0;
     9 }
    10 int tq(int x,int y,int z)
    11 {
    12     if(x == 0||y==0||z==0||x==y+z||y==x+z||z == x+y)
    13     return 1;
    14     else
    15     return 0;
    16 }
    17 int main()
    18 {
    19     int a, b, c, d, i, j,flag = 0;
    20     scanf("%d%d%d%d", &a, &b, &c,&d);
    21     if(tr(a,b,c)||tr(a,c,d)||tr(b,c,d)||tr(a,b,d))
    22     {
    23         flag = 1;
    24         printf("TRIANGLE\n");
    25     }
    26     if(!flag)
    27     {
    28         if(tq(a,b,c)||tq(a,c,d)||tq(b,c,d)||tq(a,b,d))
    29         {
    30             flag = 1;
    31             printf("SEGMENT\n");
    32         }
    33     }
    34     if(!flag)
    35     printf("IMPOSSIBLE\n");
    36     return 0;
    37 }
    A - A
    Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

    Description

    Theatre Square in the capital city of Berland has a rectangular shape with the size n × m meters. On the occasion of the city's anniversary, a decision was taken to pave the Square with square granite flagstones. Each flagstone is of the size a × a.

    What is the least number of flagstones needed to pave the Square? It's allowed to cover the surface larger than the Theatre Square, but the Square has to be covered. It's not allowed to break the flagstones. The sides of flagstones should be parallel to the sides of the Square.

    Input

    The input contains three positive integer numbers in the first line: n,  m and a (1 ≤  n, m, a ≤ 109).

    Output

    Write the needed number of flagstones.

    Sample Input

     
    Input
    6 6 4
    Output
    4

    这题因为数据类型定义的小错了好几次 蛮悲催的

    View Code
     1 #include <stdio.h>
     2 int main()
     3 {
     4     long long n, m, a,x,y;
     5     scanf("%lld%lld%lld", &n, &m, &a);
     6     if(n%a!=0)
     7     x= n/a+1;
     8     else
     9     x= n/a;
    10     if(m%a!=0)
    11     y= m/a+1;
    12     else
    13     y= m/a;
    14     printf("%lld\n",x*y);
    15     return 0;
    16 }
    C - C
    Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

    Description

    The king is left alone on the chessboard. In spite of this loneliness, he doesn't lose heart, because he has business of national importance. For example, he has to pay an official visit to square t. As the king is not in habit of wasting his time, he wants to get from his current position s to square t in the least number of moves. Help him to do this.

    In one move the king can get to the square that has a common side or a common vertex with the square the king is currently in (generally there are 8 different squares he can move to).

    Input

    The first line contains the chessboard coordinates of square s, the second line — of square t.

    Chessboard coordinates consist of two characters, the first one is a lowercase Latin letter (from a to h), the second one is a digit from 1 to 8.

    Output

    In the first line print n — minimum number of the king's moves. Then in n lines print the moves themselves. Each move is described with one of the 8: L, R, U, D, LU, LD, RU or RD.

    L, R, U, D stand respectively for moves left, right, up and down (according to the picture), and 2-letter combinations stand for diagonal moves. If the answer is not unique, print any of them.

    Sample Input

     
    Input
    a8
    
    h1
    Output
    7
    
    RD
    RD
    RD
    RD
    RD
    RD
    RD

    这题。。。。这几天搜索做多了 看见直接用BFS 写完2000多行 却发现没办法输出路径,。。纠结 看到别人用很少代码就过了 仔细一看题意 不用那么麻烦

    直接枚举各种情况

    View Code
     1 #include <stdio.h>
     2 #include<string.h>
     3 #include<math.h>
     4 void pi(int d1,int d2)
     5 {
     6     int i;
     7     if(d1>0&&d2>0)
     8     for(i = 1 ; i <= d1 ; i++)
     9     printf("RU\n");
    10     if(d1>0&&d2<0)
    11     for(i = 1 ; i <= d1 ; i++)
    12     printf("LU\n");
    13     if(d1<0&&d2>0)
    14     for(i = 1 ; i <= d2 ; i++)
    15     printf("RD\n");
    16     if(d1<0&&d2<0)
    17     for(i = 1 ; i <= abs(d1) ; i++)
    18     printf("LD\n");
    19 }
    20 int main()
    21 {
    22     int b[2],c[2],i,j,d1,d2;
    23     char a[2];
    24     scanf("%c%d%*c",&a[0],&b[0]);
    25     scanf("%c%d",&a[1],&b[1]);
    26     c[0] = a[0]-96;
    27     c[1] = a[1]-96;
    28     d2 = c[1]-c[0];
    29     d1 = b[1]-b[0];
    30     if(abs(d1) == abs(d2))
    31     {
    32         printf("%d\n",abs(d1));
    33         pi(d1,d2);
    34     }
    35     else
    36     {
    37         if(abs(d1)-abs(d2)>0)
    38         {
    39             printf("%d\n",abs(d1));
    40             for(i = 1 ; i <= abs(d1)-abs(d2);i++)
    41             if(d1>0)
    42             printf("U\n");
    43             else
    44             printf("D\n");
    45             if(d1<0)
    46             pi(-abs(d2),d2);
    47             else
    48             pi(abs(d2),d2);
    49         }
    50         else
    51         {
    52             printf("%d\n",abs(d2));
    53             for(i = 1 ; i <= abs(d2)-abs(d1);i++)
    54             if(d2>0)
    55             printf("R\n");
    56             else
    57             printf("L\n");
    58             if(d2>0)
    59             pi(d1,abs(d1));
    60             else
    61             pi(d1,-abs(d1));
    62         }
    63     }
    64     return 0;
    65 }
    F - F
    Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

    Description

    Johnny has a younger sister Anne, who is very clever and smart. As she came home from the kindergarten, she told his brother about the task that her kindergartener asked her to solve. The task was just to construct a triangle out of four sticks of different colours. Naturally, one of the sticks is extra. It is not allowed to break the sticks or use their partial length. Anne has perfectly solved this task, now she is asking Johnny to do the same.

    The boy answered that he would cope with it without any difficulty. However, after a while he found out that different tricky things can occur. It can happen that it is impossible to construct a triangle of a positive area, but it is possible to construct a degenerate triangle. It can be so, that it is impossible to construct a degenerate triangle even. As Johnny is very lazy, he does not want to consider such a big amount of cases, he asks you to help him.

    Input

    The first line of the input contains four space-separated positive integer numbers not exceeding 100 — lengthes of the sticks.

    Output

    Output TRIANGLE if it is possible to construct a non-degenerate triangle. Output SEGMENT if the first case cannot take place and it is possible to construct a degenerate triangle. Output IMPOSSIBLE if it is impossible to construct any triangle. Remember that you are to use three sticks. It is not allowed to break the sticks or use their partial length.

    Sample Input

     
    Input
    4 2 1 3
    Output
    TRIANGLE
    Input
    7 2 2 4
    Output
    SEGMENT
    Input
    3 5 9 1
    Output
    IMPOSSIBLE

    知道退化三角形是什么 就会做了 满足这两个条件之一 有一条边为0 ;一条边是另外两条的和

    View Code
     1 #include <stdio.h>
     2 #include<math.h>
     3 int tr(int x,int y,int z)
     4 {
     5     if(x+y>z&&y+z>x&&x+z>y&&abs(x-y)<z&&abs(y-z)<x&&abs(x-z)<y)
     6     return 1;
     7     else
     8     return 0;
     9 }
    10 int tq(int x,int y,int z)
    11 {
    12     if(x == 0||y==0||z==0||x==y+z||y==x+z||z == x+y)
    13     return 1;
    14     else
    15     return 0;
    16 }
    17 int main()
    18 {
    19     int a, b, c, d, i, j,flag = 0;
    20     scanf("%d%d%d%d", &a, &b, &c,&d);
    21     if(tr(a,b,c)||tr(a,c,d)||tr(b,c,d)||tr(a,b,d))
    22     {
    23         flag = 1;
    24         printf("TRIANGLE\n");
    25     }
    26     if(!flag)
    27     {
    28         if(tq(a,b,c)||tq(a,c,d)||tq(b,c,d)||tq(a,b,d))
    29         {
    30             flag = 1;
    31             printf("SEGMENT\n");
    32         }
    33     }
    34     if(!flag)
    35     printf("IMPOSSIBLE\n");
    36     return 0;
    37 }
    I - I
    Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

    Description

    Tomorrow Peter has a Biology exam. He does not like this subject much, but d days ago he learnt that he would have to take this exam. Peter's strict parents made him prepare for the exam immediately, for this purpose he has to study not less than minTimei and not more than maxTimei hours per each i-th day. Moreover, they warned Peter that a day before the exam they would check how he has followed their instructions.

    So, today is the day when Peter's parents ask him to show the timetable of his preparatory studies. But the boy has counted only the sum of hours sumTime spent him on preparation, and now he wants to know if he can show his parents a timetable sсhedule with d numbers, where each number sсhedulei stands for the time in hours spent by Peter each i-th day on biology studies, and satisfying the limitations imposed by his parents, and at the same time the sum total of all schedulei should equal to sumTime.

    Input

    The first input line contains two integer numbers d, sumTime (1 ≤ d ≤ 30, 0 ≤ sumTime ≤ 240) — the amount of days, during which Peter studied, and the total amount of hours, spent on preparation. Each of the following d lines contains two integer numbers minTimei, maxTimei (0 ≤ minTimei ≤ maxTimei ≤ 8), separated by a space — minimum and maximum amount of hours that Peter could spent in the i-th day.

    Output

    In the first line print YES, and in the second line print d numbers (separated by a space), each of the numbers — amount of hours, spent by Peter on preparation in the corresponding day, if he followed his parents' instructions; or print NO in the unique line. If there are many solutions, print any of them.

    Sample Input

     
    Input
    1 48
    
    5 7
    Output
    NO
    Input
    2 5
    
    0 1
    3 5
    Output
    YES
    
    1 4

    这题蛮水 sum在所有最小的之和 与所有最大之和之间 就YES 之后输出一种情况 具体看代码 吧

    View Code
     1 #include<stdio.h>
     2 int main()
     3 {
     4     int d, t, min[50],max[50],min1 = 0,max1 = 0,i;
     5     scanf("%d%d", &d, &t);
     6     for(i = 1 ; i <= d ; i++)
     7     {
     8         scanf("%d%d", &min[i],&max[i]);
     9         min1+=min[i];
    10         max1+=max[i];
    11     }
    12     if(t>=min1&&t<=max1)
    13     {
    14         printf("YES\n");
    15         int x = t-min1;
    16         for(i = 1 ; i <= d ; i++)
    17         {
    18             if(i!=1)
    19             printf(" ");
    20              if(x+min[i]<=max[i])
    21              {
    22                  printf("%d",x+min[i]);
    23                  x = 0;
    24              }
    25              else
    26              {
    27                  printf("%d",max[i]);
    28                  x-=(max[i]-min[i]);
    29              }
    30         }
    31     }
    32     else
    33     printf("NO\n");
    34     return 0;
    35 }
    J - J
    Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u

    Description

    Almost every text editor has a built-in function of center text alignment. The developers of the popular in Berland text editor «Textpad» decided to introduce this functionality into the fourth release of the product.

    You are to implement the alignment in the shortest possible time. Good luck!

    Input

    The input file consists of one or more lines, each of the lines contains Latin letters, digits and/or spaces. The lines cannot start or end with a space. It is guaranteed that at least one of the lines has positive length. The length of each line and the total amount of the lines do not exceed 1000.

    Output

    Format the given text, aligning it center. Frame the whole text with characters «*» of the minimum size. If a line cannot be aligned perfectly (for example, the line has even length, while the width of the block is uneven), you should place such lines rounding down the distance to the left or to the right edge and bringing them closer left or right alternatively (you should start with bringing left). Study the sample tests carefully to understand the output format better.

    Sample Input

    Input
    This  is

    Codeforces
    Beta
    Round
    5
    Output
    ************
    * This is *
    * *
    *Codeforces*
    * Beta *
    * Round *
    * 5 *
    ************
    Input
    welcome to the
    Codeforces
    Beta
    Round 5

    and
    good luck
    Output
    ****************
    *welcome to the*
    * Codeforces *
    * Beta *
    * Round 5 *
    * *
    * and *
    * good luck *
    ****************
    最后半小时看的这个题 不到20分钟写完 居中处理 如果两边空余不一样 就先贴近左边再贴近右边 交替
    View Code
     1 #include<stdio.h>
     2 #include<string.h>
     3 char c[1001][1001];
     4 int main()
     5 {
     6     int k[1001], i = 0, j,flag = 1,max = 0,q;
     7     while(gets(c[i])!=NULL)
     8     {
     9         if(c[i][0] == '*')
    10         break;
    11         k[i] = strlen(c[i]);
    12         if(max<k[i])
    13         max = k[i];
    14         i++;
    15     }
    16     for(j = 1 ; j <= max+2 ; j++)
    17     printf("*");
    18     puts("");
    19     for(j = 0 ; j < i ; j++)
    20     {
    21         printf("*");
    22         if((max-k[j])%2 == 0)
    23         {
    24             for(q = 1 ;q<=(max-k[j])/2 ; q++)
    25             printf(" ");
    26             for(q = 0 ; q < k[j] ; q++)
    27             printf("%c",c[j][q]);
    28             for(q = 1 ;q<=(max-k[j])/2 ; q++)
    29             printf(" ");
    30         }
    31         else
    32         {
    33             if(flag == 1)
    34             {
    35                  for(q = 1 ;q<=(max-k[j])/2 ; q++)
    36                 printf(" ");
    37                 for(q = 0 ; q < k[j] ; q++)
    38                 printf("%c",c[j][q]);
    39                 for(q = 1 ;q<=(max-k[j])/2+1 ; q++)
    40                 printf(" ");
    41                 flag = 0;
    42             }
    43             else
    44             {
    45                 for(q = 1 ;q<=(max-k[j])/2+1 ; q++)
    46                 printf(" ");
    47                 for(q = 0 ; q < k[j] ; q++)
    48                 printf("%c",c[j][q]);
    49                 for(q = 1 ;q<=(max-k[j])/2 ; q++)
    50                 printf(" ");
    51                 flag = 1;
    52             }
    53         }
    54         printf("*\n");
    55     }
    56     for(j = 1 ; j <= max+2 ; j++)
    57     printf("*");
    58     return 0;
    59 }
  • 相关阅读:
    hibernate 核心包与核心接口介绍
    Maven2 的常用命令
    更改SVN登录用户
    配置修改Eclipse自动生成的注释信息
    hibernate 核心包与核心接口介绍
    hibernatedaosupport的使用
    表单提交
    添加ftp用户,等7788
    php 信息
    ecshop 表结构 (转)
  • 原文地址:https://www.cnblogs.com/shangyu/p/2590148.html
Copyright © 2011-2022 走看看