• Nowcoder 牛可乐发红包脱单OI赛$


    好不容易打一场比赛写完2题信心满满能过结果快读写错炸成0分。。心态崩了。。

    A

    给一个序列长度n,求把最少数变成1使得任意长度大于等于k的子串gcd=1;

    傻逼题。。答案是n/k

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <algorithm>
     4 #include <cstring>
     5 #include <cmath>
     6 #include <queue>
     7 #include <vector>
     8 #include <map>
     9 #define ll long long
    10 #define out(a) printf("%d",a)
    11 #define ln printf("
    ")
    12 const int N=1e5+50;
    13 const int MOD=1e9+7;
    14 using namespace std;
    15 int n,k;
    16 int read()
    17 {
    18     int s=0,t=1; char c=getchar();
    19     while (c<'0'||c>'9'){if (c=='-') t=-1; c=getchar();}
    20     while (c>='0'&&c<='9'){s=s*10+c-'0'; c=getchar();}
    21     return s*t;
    22 }
    23 ll readl()
    24 {
    25     ll s=0,t=1; char c=getchar();
    26     while (c<'0'||c>'9'){if (c=='-') t=-1; c=getchar();}
    27     while (c>='0'&&c<='9'){s=s*10+c-'0'; c=getchar();}
    28     return s*t;
    29 }
    30 int main()
    31 {
    32     cin>>n>>k;
    33     cout<<n/k;
    34     return 0;
    35 }
    View Code

    B

    两个操作,a把序列最后那个数移到最前面,b把序列第三个数移到最前面.

    显然操作是循环的,%一下然后模拟就好了...

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <algorithm>
     4 #include <cstring>
     5 #include <cmath>
     6 #include <queue>
     7 #include <vector>
     8 #include <map>
     9 #define ll long long
    10 #define out(a) printf("%d ",a)
    11 #define ln printf("
    ")
    12 const int N=1e5+50;
    13 const int MOD=1e9+7;
    14 using namespace std;
    15 int n,m;
    16 int a[N],b[N],c[N];
    17 int num,now,tot=0,l;
    18 char s[N];
    19 int read()
    20 {
    21     int s=0,t=1; char c=getchar();
    22     while (c<'0'||c>'9'){if (c=='-') t=-1; c=getchar();}
    23     while (c>='0'&&c<='9'){s=s*10+c-'0'; c=getchar();}
    24     return s*t;
    25 }
    26 ll readl()
    27 {
    28     ll s=0,t=1; char c=getchar();
    29     while (c<'0'||c>'9'){if (c=='-') t=-1; c=getchar();}
    30     while (c>='0'&&c<='9'){s=s*10+c-'0'; c=getchar();}
    31     return s*t;
    32 }
    33 int find(int len)
    34 {
    35     int x=0;
    36     for (int i=0;i<len-1;i++)
    37       x=x*10+s[i]-'0';
    38     return x;
    39 }
    40 int main()
    41 {
    42     n=read(); m=read();
    43     for (int i=1;i<=n;i++)
    44       a[i]=read();
    45     for (int i=1;i<=m;i++){
    46       scanf("%s",s); l=strlen(s);
    47       if (s[l-1]=='a') now=n; else now=3;
    48         num=find(l)%now; tot=0;
    49         for (int j=now-num+1;j<=now;j++)
    50           b[++tot]=a[j];
    51         for (int j=1;j<=now-num;j++)
    52           c[j+num]=a[j];
    53         for (int j=1;j<=num;j++)
    54           a[j]=b[j];
    55         for (int j=num+1;j<=now;j++)
    56           a[j]=c[j];
    57     }
    58     for (int i=1;i<=n;i++)
    59       out(a[i]);
    60     return 0;
    61 }
    View Code

     

    快读问题就是c没有用getchar()赋初值。。。还好在noip前发现我一直这样写却没发现的错误

    本来妥妥200分炸成0分,noip比赛时还是老老实实scanf吧QAQ。。

  • 相关阅读:
    组件定义
    序列化代码
    Views 代码 导包
    DRF 初始化
    Urls 代码
    怎么用sublime text 3搭建python 的ide
    C语言位运算
    ZOJ 1104 Leaps Tall Buildings
    UVa 10739 String to Palindrome
    ZOJ 3563 Alice's Sequence II
  • 原文地址:https://www.cnblogs.com/Kaleidoscope233/p/9895997.html
Copyright © 2020-2023  润新知