zoukankan      html  css  js  c++  java
  • Codeforces Round #402 (Div. 2)解题报告

    A.

     1 #include <iostream>
     2 #include<bits/stdc++.h>
     3 #include <stack>
     4 #include <queue>
     5 #include <map>
     6 #include <set>
     7 #include <cstdio>
     8 #include <cstring>
     9 #include <algorithm>
    10 #include <math.h>
    11 using namespace std;
    12 typedef long long ll;
    13 typedef unsigned long long ull;
    14 int a[10],b[10],he[10];
    15 int n;
    16 int cnt;
    17 int main()
    18 {
    19     scanf("%d",&n);
    20     int i;
    21     int tem;
    22     for(i=1;i<=n;i++)
    23     {
    24         scanf("%d",&tem);
    25         a[tem]++;
    26         he[tem]++;
    27     }
    28     for(i=1;i<=n;i++)
    29     {
    30         scanf("%d",&tem);
    31         b[tem]++;
    32         he[tem]++;
    33     }
    34     for(i=1;i<=5;i++)
    35     {
    36         if(he[i]%2)
    37         {
    38             printf("-1
    ");return 0;
    39         }
    40         else
    41         {
    42             if(a[i]>he[i]/2)
    43                 cnt+=a[i]-he[i]/2;
    44         }
    45 
    46     }
    47     printf("%d
    ",cnt);
    48     return 0;
    49 }
    View Code

    B.

     1 #include <iostream>
     2 #include<bits/stdc++.h>
     3 #include <stack>
     4 #include <queue>
     5 #include <map>
     6 #include <set>
     7 #include <cstdio>
     8 #include <cstring>
     9 #include <algorithm>
    10 #include <math.h>
    11 using namespace std;
    12 typedef long long ll;
    13 typedef unsigned long long ull;
    14 char a[105];
    15 int k;
    16 int main()
    17 {
    18     scanf("%s %d",a,&k);
    19     if(strlen(a)==1&&a[0]=='0')
    20     {
    21         printf("0
    ");
    22         return 0;
    23     }
    24     else
    25     {
    26         int cnt=0;
    27         int an=0;
    28         int ge=0;
    29         int j;
    30         j=strlen(a)-1;
    31         while(a[j]=='0')
    32         {
    33             cnt++;
    34             j--;
    35         }
    36         if(cnt>=k)
    37             printf("0
    ");
    38         else
    39         {
    40             int i;
    41             for(i=j;i>=0&&cnt<k;i--)
    42             {
    43                 if(a[i]=='0')
    44                     cnt++;
    45                 else
    46                     ge++;
    47             }
    48             if(cnt==k)
    49                 printf("%d
    ",ge);
    50             else if(cnt>0)
    51                 printf("%d
    ",strlen(a)-1);
    52         }
    53     }
    54     return 0;
    55 }
    View Code

    C.

     1 #include <iostream>
     2 #include<bits/stdc++.h>
     3 #include <stack>
     4 #include <queue>
     5 #include <map>
     6 #include <set>
     7 #include <cstdio>
     8 #include <cstring>
     9 #include <algorithm>
    10 #include <math.h>
    11 using namespace std;
    12 typedef long long ll;
    13 typedef unsigned long long ull;
    14 const int MAX=2e5+5;
    15 struct node
    16 {
    17     int sheng;
    18     int id;
    19 }a[MAX];
    20 int x[MAX],y[MAX];
    21 int n,k;
    22 bool cmp(node p,node q)
    23 {
    24     if(p.sheng!=q.sheng)
    25         return p.sheng>q.sheng;
    26     else
    27         return p.id<q.id;
    28 }
    29 int an;
    30 int main()
    31 {
    32     scanf("%d %d",&n,&k);
    33     int i;
    34     for(i=0;i<n;i++)
    35     {
    36         scanf("%d",&x[i]);
    37     }
    38     for(i=0;i<n;i++)
    39     {
    40         scanf("%d",&y[i]);
    41         a[i].sheng=y[i]-x[i];
    42         a[i].id=i;
    43     }
    44     sort(a,a+n,cmp);
    45     for(i=0;i<k||(a[i].sheng>=0&&i<n);i++)
    46     {
    47         an+=x[a[i].id];
    48     }
    49     for(int j=i;j<n;j++)
    50     {
    51         an+=y[a[j].id];
    52     }
    53     printf("%d
    ",an);
    54     return 0;
    55 }
    View Code

    D.

    注意需要二分一下,不然会TLE

     1 #include <iostream>
     2 #include<bits/stdc++.h>
     3 #include <stack>
     4 #include <queue>
     5 #include <map>
     6 #include <set>
     7 #include <cstdio>
     8 #include <cstring>
     9 #include <algorithm>
    10 #include <math.h>
    11 using namespace std;
    12 typedef long long ll;
    13 typedef unsigned long long ull;
    14 const int MAX=2e5+5;
    15 char a[MAX],b[MAX];
    16 bool val[MAX];
    17 int num[MAX];
    18 int len,le;//len是b长度,le是a长度
    19 bool dfs(int x)//一直到编号x
    20 {
    21     for(int i=0;i<=le;i++)
    22     {
    23         val[i]=false;
    24     }
    25     for(int i=1;i<=x;i++)
    26     {
    27         val[num[i]-1]=true;
    28     }
    29     int lo=0;//匹配到了b的第lo个
    30     for(int i=0;i<le&&lo<len;i++)
    31     {
    32         if(val[i])
    33         {
    34             if(a[i]==b[lo])
    35                 lo++;
    36         }
    37     }
    38     if(lo==len)
    39         return true;
    40     else return false;
    41 }
    42 int main()
    43 {
    44     scanf("%s %s",a,b);
    45     len=strlen(b);
    46     le=strlen(a);
    47     int i;
    48     for(i=le;i>0;i--)
    49     {
    50         scanf("%d",&num[i]);
    51     }
    52     int l=len,r=le,mid,an=-1;
    53     while(l<=r)
    54     {
    55         mid=(l+r)/2;
    56         if(dfs(mid))
    57             {
    58                 an=mid;
    59                 r=mid-1;
    60             }
    61         else
    62         {
    63             l=mid+1;
    64         }
    65     }
    66         if(an==-1)
    67         printf("0
    ");
    68         else
    69             printf("%d
    ",le-an);
    70     return 0;
    71 }
    View Code
  • 相关阅读:
    sqlhelper使用指南
    大三学长带我学习JAVA。作业1. 第1讲.Java.SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行 大三学长带我学习JAVA。作业1.
    pku1201 Intervals
    hdu 1364 king
    pku 3268 Silver Cow Party
    pku 3169 Layout
    hdu 2680 Choose the best route
    hdu 2983
    pku 1716 Integer Intervals
    pku 2387 Til the Cows Come Home
  • 原文地址:https://www.cnblogs.com/quintessence/p/6446529.html
Copyright © 2011-2022 走看看