zoukankan      html  css  js  c++  java
  • sdutEconomic phone calls

    http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2368

    我也不知道 这份代码算不算DP 之前写的那份长长的长长的dp死活过不了 可能太长了 bug就太多了。。

    这个是根据必须保留的来算哪些可以删除 哪些必须保留

    3种情况

    当前这个号的日期是‘-’号,‘+’号直接不能删除 继续循环

    1、 若比前一个不能删除的(pre)大 也就是它们是同一年份的 如果下一个也就是i+1 的年份比i大 也就是它三是一年份的 或者 i+1的年份比pre小或相等 当前i可以删除。

    2、若比pre小 不同年份 如果i+1的年份比i大而且比pre小于等于 当前i可以被删除。

    3、不符合上述2种情况 不能被删除 pre为当前i;

    View Code
     1 #include <iostream>
     2 #include<cstdio>
     3 #include<string.h>
     4 #define INF 100000
     5 using namespace std;
     6 struct node
     7 {
     8     int a,b,c,d;
     9     char s1[30],s2[30];
    10 }q[1011];
    11 int num;
    12 int judge(node x,node y)
    13 {
    14     if(x.a>y.a)
    15     return 1;
    16     else
    17     if(x.a<y.a)
    18     return 0;
    19     else
    20     if(x.b>y.b)
    21     return 1;
    22     else
    23     if(x.b<y.b)
    24     return 0;
    25     else
    26     if(x.c>y.c)
    27     return 1;
    28     else
    29     if(x.c<y.c)
    30     return 0;
    31     else
    32     if(x.d>y.d)
    33     return 1;
    34     else
    35     if(x.d<y.d)
    36     return 0;
    37     else
    38     return -1;
    39 }
    40 int main()
    41 {
    42     int i,j,k,n,m,yy,pre;
    43     while(scanf("%d",&n)&&n)
    44     {
    45 
    46         int g = 0;
    47         num = 0;
    48         scanf("%d:%d:%d:%d%s%s",&q[1].a,&q[1].b,&q[1].c,&q[1].d,&q[1].s1,&q[1].s2);
    49         for(i = 2; i <= n ; i++)
    50         {
    51             scanf("%d:%d:%d:%d%s%s",&q[i].a,&q[i].b,&q[i].c,&q[i].d,&q[i].s1,&q[i].s2);
    52         }
    53         q[n+1].a =0,q[n+1].b=0,q[n+1].c=0,q[n+1].d=0;
    54         i = 1;
    55         while(q[i].s2[0]=='-')
    56         {
    57             num++;
    58             i++;
    59         }
    60         node pre = q[i];
    61         for(i=i+1 ; i <= n; i++)
    62         {
    63             if(q[i].s2[0]=='+')
    64             {
    65                 pre = q[i];
    66                 continue;
    67             }
    68             if(judge(q[i],pre)>0&&(judge(q[i+1],pre)<=0||judge(q[i+1],q[i])>0))
    69               {
    70                   num++;
    71               }
    72            else
    73            if(judge(q[i],pre)==0&&judge(q[i],q[i+1])==0&&judge(q[i+1],pre)<=0)
    74            {
    75                num++;
    76            }
    77            else
    78            {
    79                pre = q[i];
    80            }
    81         }
    82         printf("%d\n",n-num);
    83     }
    84     return 0;
    85 }
  • 相关阅读:
    Lambda 表达式
    jmeter--基于http+json接口的功能测试
    【python】-- web开发之jQuery
    【python】-- web开发之DOM
    【python】-- web开发之JavaScript
    【python】-- web开发之CSS
    【python】-- web开发之HTML
    【Robot Framework】---- Robot Framework简介、特点、RIDE
    【python】-- paramiko、跳板机(堡垒机)
    【python】-- pymsql 外键
  • 原文地址:https://www.cnblogs.com/shangyu/p/2661767.html
Copyright © 2011-2022 走看看