• codeforces Round #347 (Div. 2) B


    这种题代码都写残。。。。

    思路就是先把每个数都记为1,统计正负数的和sum,如果sum大于n,则负数和q减1,加的时候类似。注意限制条件

    比较水的题。。。。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<cstdlib>
     4 #include<iostream>
     5 #include<queue>
     6 #include<stack>
     7 #include<cmath>
     8 #include<algorithm>
     9 #include<malloc.h>
    10 using namespace std;
    11 #define clc(a,b) memset(a,b,sizeof(a))
    12 #define inf 0x3f3f3f3f
    13 const int N=10010;
    14 #define LL long long
    15 const double eps = 1e-5;
    16 const double pi = acos(-1);
    17 // inline int r(){
    18 //     int x=0,f=1;char ch=getchar();
    19 //     while(ch>'9'||ch<'0'){if(ch=='-') f=-1;ch=getchar();}
    20 //     while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
    21 //     return x*f;
    22 // }
    23 char s[2];
    24 int a[1010];
    25 int v[1010];
    26 int main(){
    27     clc(a,0);
    28     clc(v,0);
    29     scanf("%s",s);
    30     scanf("%s",s);
    31     int p=1;
    32     int q=0;
    33     v[1]=1;
    34     int k=1;
    35     while(s[0]!='='){
    36         if(s[0]=='+'){
    37             v[++k]=1;
    38             p++;
    39         }
    40         if(s[0]=='-'){
    41             v[++k]=-1;
    42             q++;
    43         }
    44         scanf("%s",s);
    45         scanf("%s",s);
    46     }
    47     int n;
    48     scanf("%d",&n);
    49     for(int i=1;i<=k;i++){
    50         a[i]=1;
    51     }
    52     int sum=p-q;
    53     for(int i=1;i<=k;i++){
    54         while(sum<n&&v[i]==1&&a[i]<n){
    55             a[i]++,sum++;
    56         }
    57         while(sum>n&&v[i]==-1&&a[i]<n){
    58             a[i]++,sum--;
    59         }
    60     }
    61     if(sum!=n){
    62         printf("Impossible
    ");
    63         return 0;
    64     }
    65     printf("Possible
    ");
    66     printf("%d ",a[1]);
    67     for(int i=2;i<=k;i++){
    68         if(v[i]==1)
    69             printf("+ ");
    70         else if(v[i]==-1){
    71             printf("- ");
    72         }
    73        printf("%d ",a[i]);
    74     }
    75     printf("= %d
    ",n);
    76     return 0;
    77 }
    View Code
  • 相关阅读:
    HDU 1213 How Many Tables(并查集,简单)
    POJ 1611 The Suspects(并查集,简单)
    HDU 4539 郑厂长系列故事――排兵布阵(曼哈顿距离)
    POJ 2411 Mondriaan'sDream(状压DP)
    ZOJ 4257 MostPowerful(状压DP,简单)
    HDU 3001 Traveling(状压DP)
    POJ 3311 Hie with the Pie(Floyd+状态压缩DP)
    POJ 1185 炮兵阵地(状态压缩DP)
    POJ 3254 Corn Fields(状态压缩DP)
    XueXX and Chessboard(dp)
  • 原文地址:https://www.cnblogs.com/ITUPC/p/5414181.html
Copyright © 2020-2023  润新知