zoukankan      html  css  js  c++  java
  • hdu 5742 It's All In The Mind(2016多校第二场)

    It's All In The Mind

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 505    Accepted Submission(s): 225


    Problem Description
    Professor Zhang has a number sequence a1,a2,...,an . However, the sequence is not complete and some elements are missing. Fortunately, Professor Zhang remembers some properties of the sequence:

    1. For every i{1,2,...,n} , 0ai100 .
    2. The sequence is non-increasing, i.e. a1a2...an .
    3. The sum of all elements in the sequence is not zero.

    Professor Zhang wants to know the maximum value of a1+a2ni=1ai among all the possible sequences.
     
    Input
    There are multiple test cases. The first line of input contains an integer T , indicating the number of test cases. For each test case:

    The first contains two integers n and m (2n100,0mn) -- the length of the sequence and the number of known elements.

    In the next m lines, each contains two integers xi and yi (1xin,0yi100,xi<xi+1,yiyi+1) , indicating that axi=yi .
     
    Output
    For each test case, output the answer as an irreducible fraction "p /q ", where p , q are integers, q>0 .
     
    Sample Input
    2
    2 0
    3 1
    3 1
     
    Sample Output
    1/1
    200/201
     
    Author
    zimpha
     
    题意:求a1+a2/a1+a2+..+an的最大值,其中只给出部分的值,ax=y;
     
    水题,保证a1,a2最大,后面的尽量小就好,需要注意的是,这是非递增数列,后面有数赋值,会影响前面的数的取值。
     
    附上代码:
     
     1 #include <iostream>
     2 #include <cstdio>
     3 using namespace std;
     4 int a[105];
     5 int _gcd(int x,int y) ///求最大公约数
     6 {
     7     int z;
     8     if(x<y) z=x,x=y,y=z;
     9     while(y)
    10     {
    11         z=x%y;
    12         x=y;
    13         y=z;
    14     }
    15     return x;
    16 }
    17 int main()
    18 {
    19     int T,i,j,n,m;
    20     scanf("%d",&T);
    21     while(T--)
    22     {
    23         int x,y,t=0;
    24         scanf("%d%d",&n,&m);
    25         for(i=1; i<=n; i++)  ///初始化全为-1
    26             a[i]=-1;
    27         for(i=0; i<m; i++)
    28         {
    29             scanf("%d%d",&x,&y);
    30             a[x]=y;
    31         }
    32         if(n==2||m==0)   ///若只有两个数,或者不给任何数赋值,都能输出最大的1/1
    33         {
    34             printf("1/1
    ");
    35             continue;
    36         }
    37         int nn=0,mm=0,fail=0;
    38         for(i=n; i>=3; i--)  ///因为前面的小于等于后面的,因此从后面向前面循环
    39         {
    40                 if(a[i]!=-1) ///如果a[i]被赋值,记录此时的a[i],并标记已出现赋值的数
    41                 {
    42                     t=a[i];
    43                     fail=1;
    44                     mm+=t;
    45                 }
    46                 else
    47                 {
    48                     if(!fail)  ///若没有出现已赋值的数,可以定义为后面的数始终为0
    49                     {
    50                         mm+=0;
    51                     }
    52                     else   ///若已出现,则只能小于等于这个数
    53                     {
    54                         mm+=t;
    55                     }
    56                 }
    57         }
    58         if(a[1]==-1) ///a1和a2期望越大越好,若都无赋值,就都取100,若有赋值,则去赋值的数,且a2小于a1
    59         {
    60             nn+=100,mm+=100;
    61             if(a[2]==-1)
    62                 nn+=100,mm+=100;
    63             else
    64                 nn+=a[2],mm+=a[2];
    65         }
    66         else
    67         {
    68             nn+=a[1],mm+=a[1];
    69             if(a[2]==-1)
    70                 nn+=a[1],mm+=a[1];
    71             else
    72                 nn+=a[2],mm+=a[2];
    73         }
    74         int dd=_gcd(nn,mm);
    75         printf("%d/%d
    ",nn/dd,mm/dd);
    76     }
    77     return 0;
    78 }
  • 相关阅读:
    洛谷P1877: [HAOI2012]音量调节(动态规划)
    hihocoder#1014 : Trie树
    hihocoder#1014 : Trie树
    河南省第六届大学生程序设计竞赛 : Card Trick(模拟)
    河南省第六届大学生程序设计竞赛 : Card Trick(模拟)
    第四届河南省程序设计大赛:表达式求值 (栈)
    第四届河南省程序设计大赛:表达式求值 (栈)
    第四届河南省程序设计大赛:BOBSLEDDING (贪心)
    第四届河南省程序设计大赛:BOBSLEDDING (贪心)
    菜根谭#52
  • 原文地址:https://www.cnblogs.com/pshw/p/5694336.html
Copyright © 2011-2022 走看看