zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 81 (Rated for Div. 2)

    A

    0~9需要多少笔画,自取7和1,判奇偶

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define ll long long
     4 #define il inline
     5 #define it register int
     6 #define lowbit(x) (x)&(-x)
     7 #define mem(a,b) memset(a,b,sizeof(a))
     8 #define mod 1000000007
     9 const int maxn=1e5+10;
    10 int n,m;
    11 int t;
    12 int main(){
    13     scanf("%d",&t);
    14     while(t--){
    15         scanf("%d",&n);
    16         if(n&1){
    17             n-=3;
    18             printf("7");
    19             int ci=n/2;
    20             for(it i=0;i<ci;i++){
    21                 printf("1");
    22             }
    23             printf("
    ");
    24         }
    25         else{
    26             int ci=n/2;
    27             for(it i=0;i<ci;i++){
    28                 printf("1");
    29             }
    30             printf("
    ");
    31         }
    32     }
    33     return 0;
    34 }
    View Code

    B

    被hack了,早上仔细一想,发现判m==0的时候少考虑了几个条件,直接a[i]==m就过了,所以就必被hack了

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define ll long long
     4 #define il inline
     5 #define it register int
     6 #define lowbit(x) (x)&(-x)
     7 #define mem(a,b) memset(a,b,sizeof(a))
     8 #define mod 1000000007
     9 const int maxn=1e5+10;
    10 int n,m;
    11 int t,a[maxn];
    12 char s[maxn];
    13 int main(){
    14     scanf("%d",&t);
    15     while(t--){
    16         scanf("%d%d",&n,&m);
    17         scanf("%s",s);
    18         int l=strlen(s);
    19         a[0]=0;
    20         int ji=0;
    21         for(it i=0;i<l;i++){
    22             if(s[i]=='0'){
    23                a[i+1]=a[i]+1;
    24             }
    25             else{
    26                 a[i+1]=a[i]-1;
    27             }
    28             if(a[i+1]&1){
    29                 ji++;
    30             }
    31         }
    32         if(a[l]<0 && m>0){
    33             int sum=0;
    34             for(it i=1;i<=l;i++){
    35                 if((m-a[i])%a[l]==0 && m<=a[i]){
    36                     sum++;
    37                 }
    38             }
    39             printf("%d
    ",sum);
    40         }
    41         else if(a[l]>0 && m<0){
    42             int sum=0;
    43             for(it i=1;i<=l;i++){
    44                 if((m-a[i])%a[l]==0 && m>=a[i]){
    45                     sum++;
    46                 }
    47             }
    48             printf("%d
    ",sum);
    49         }
    50         else if(a[l]==0){
    51             int sum=0;
    52             for(it i=1;i<=l;i++){
    53                 if(a[i]==m){
    54                     sum++;
    55                 }
    56             }
    57             if(!sum){
    58                 printf("%d
    ",sum);
    59             }
    60             else{
    61                 printf("-1
    ");
    62             }
    63         }
    64         else if(m==0){
    65             int sum=1;
    66             for(it i=1;i<=l;i++){
    67                 if(a[i]==0 || (a[l]<0 && 0<a[i] || a[l]>0 && 0>a[i])&& a[i]%a[l]==0){
    68                     sum++;
    69                 }
    70             }
    71             printf("%d
    ",sum);
    72         }
    73  
    74         else{
    75              int sum=0;
    76             for(it i=1;i<=l;i++){
    77                 if((m-a[i])%a[l]==0 && m>0 &&m>=a[i]){
    78                     sum++;
    79                 }
    80                 if((m-a[i])%a[l]==0 && m<0 &&m<=a[i]){
    81                     sum++;
    82                 }
    83             }
    84             printf("%d
    ",sum);
    85         }
    86     }
    87     return 0;
    88 }
    View Code

    昨天比的时候B题感觉不太好,但过了就没细想,果然出现问题了

    C

    就是找字母位置,是否比他大,或者有无

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define ll long long
     4 #define il inline
     5 #define it register int
     6 #define lowbit(x) (x)&(-x)
     7 #define mem(a,b) memset(a,b,sizeof(a))
     8 #define mod 1000000007
     9 const int maxn=1e5+10;
    10 int n,m;
    11 int t;
    12 char s[maxn],ss[maxn];
    13 int a[27][maxn];
    14 int main(){
    15     scanf("%d",&t);
    16     while(t--){
    17         scanf("%s",s);scanf("%s",ss);
    18         int l=strlen(s),l1=strlen(ss);
    19         for(it i=0;i<26;i++){
    20             a[i][0]=0;
    21         }
    22         for(it i=0;i<l;i++){
    23             int c=s[i]-'a';
    24             a[c][++a[c][0]]=i;
    25         }
    26         int pos=-1,f=1,bu=1;
    27         for(it i=0;i<l1;i++){
    28             int c=ss[i]-'a';
    29             if(a[c][0]==0){f=0;break;}
    30             int pps=upper_bound(a[c]+1,a[c]+1+a[c][0],pos)-a[c];//cout<<pps<<endl;
    31             if(a[c][pps]>pos && a[c][0]>=pps){
    32                 pos=a[c][pps];
    33             }
    34             else{
    35                 bu++;pos=a[c][1];
    36             }
    37             //cout<<a[c][pps]<<" "<<pos<<endl;
    38         }
    39         if(f){
    40             printf("%d
    ",bu);
    41         }
    42         else{
    43             printf("-1
    ");
    44         }
    45     }
    46     return 0;
    47 }
    View Code

    D

    忘记要容斥,最后发现答案输出有负数存在,所以待补

     https://www.cnblogs.com/luoyugongxi/p/12243962.html

    upd:没想倒是原题……这次没想到被hack完还能上几分,这B题真搞。

    有空,有能力补EF

    https://codeforces.com/contest/1295

  • 相关阅读:
    C语言寒假大作战01
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I博客作业10
    C语言I博客作业09
    C语言I博客作业08
    计算机组成与设计 复习
    概率论与数理统计 期末复习
    SPM(Software Project Management)课程感想
    Software Project Management_JUnit && Maven
  • 原文地址:https://www.cnblogs.com/luoyugongxi/p/12242239.html
Copyright © 2011-2022 走看看