• 2019acm山东省赛C题


    传送门: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4115

    昨天赛场上只想到了一种情况:最远点一定是在最后一次循环中产生的,且一定是第一次循环中最远点对应的那个点,因此想到的只是求出第一次循环中的终点,找到它相对于第一次循环里最远点的相对位置,然后。。。。。WA了。

    后来,大佬的点拨才发现,脑子是个好东西啊啊啊啊啊!也可以在第一次啊!

    比如, n=26, k=2;

            RRRRRRUUUUUULLLLLLLDDDDDDD;画一画你就知道了^ ^;

    然后经过自己的一些验算可以发现最远点其实只会在第一次循环个和最后一次循环中产生的;

    所以AC代码如下:

      1 /* */
      2 # include <stdio.h>
      3 # include <stdlib.h>
      4 struct node1
      5 {
      6     long long int xx;
      7     long long int yy;
      8 }ss[110000];
      9 
     10 struct node2
     11 {
     12     long long int xxx;
     13     long long int yyy;
     14 }sss[110000];
     15 
     16 int main()
     17 {
     18     long long int T, n, k, i, x, y, maxq, maxz, t1, t2, t, tt1, tt2, tt;
     19     char s[110000];
     20     long long int xz, yz;
     21     while( ~ scanf("%lld", &T) )
     22     {
     23         while( T-- )
     24         {
     25             scanf("%lld %lld", &n, &k);
     26             getchar();
     27             gets(s);
     28             maxq = 0;
     29             maxz = 0;
     30             x = 0;
     31             y = 0;
     32             for( i=0; i<n; i++ )
     33             {
     34                 if( s[i]=='R' )
     35                 {
     36                     x++;
     37                 }
     38                 if( s[i]=='L' )
     39                 {
     40                     x--;
     41                 }
     42                 if( s[i]=='U' )
     43                 {
     44                     y++;
     45                 }
     46                 if( s[i]=='D' )
     47                 {
     48                     y--;
     49                 }
     50                 ss[i].xx = x;
     51                 ss[i].yy = y;
     52                 t1 = x - 0;
     53                 t2 = y - 0;
     54                 if( t1<0 )
     55                 {
     56                     t1 = -t1;
     57                 }
     58                 if( t2<0 )
     59                 {
     60                     t2 = -t2;
     61                 }
     62                 t = t1+t2;
     63                 if( t>maxq )
     64                 {
     65                     maxq = t;
     66                 }
     67             }
     68             xz = x * (k-1);///第(k-1)次循环的终点,最后一次循环的起点
     69             yz = y * (k-1);
     70             for( i=0; i<n; i++ )
     71             {
     72                 if( s[i]=='R' )
     73                 {
     74                     xz++;
     75                 }
     76                 if( s[i]=='L' )
     77                 {
     78                     xz--;
     79                 }
     80                 if( s[i]=='U' )
     81                 {
     82                     yz++;
     83                 }
     84                 if( s[i]=='D' )
     85                 {
     86                     yz--;
     87                 }
     88                 sss[i].xxx = xz;
     89                 sss[i].yyy = yz;
     90                 tt1 = xz - 0;
     91                 tt2 = yz - 0;
     92                 if( tt1<0 )
     93                 {
     94                     tt1 = -tt1;
     95                 }
     96                 if( tt2<0 )
     97                 {
     98                     tt2 = -tt2;
     99                 }
    100                 tt = tt1+tt2;
    101                 if( tt>maxz )
    102                 {
    103                     maxz = tt;
    104                 }
    105             }
    106             if( maxz>maxq )
    107             {
    108                 printf("%lld
    ", maxz);
    109             }
    110             else
    111             {
    112                 printf("%lld
    ", maxq);
    113             }
    114         }
    115     }
    116     return 0;
    117 }
    View Code
  • 相关阅读:
    dos常用命令
    组合封装知识点
    继承与派生知识点
    继承与派生
    面向对象知识点
    面向对象
    Day 84 DRF的分页和过滤
    Day80 使用第三方(腾讯云)短信验证码接口
    Day 79 xadmin后台管理/Git仓库
    Day 77 三大认证组件
  • 原文地址:https://www.cnblogs.com/wsy107316/p/10857418.html
Copyright © 2020-2023  润新知