zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 59 (Rated for Div. 2) (前四题)

    A. Digits Sequence Dividing(英文速读)

    练习英语速读的题,我还上来昏迷一次。。。。只要长度大于2那么一定可以等于2那么前面大于后面就行其他no

    大于2的时候分成前面1个剩下后面一定是对的因为按照数字大小

    代码

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
      ios::sync_with_stdio(0);
      cin.tie(0);
      cout.tie(0);
      int n;
      cin>>n;
      while(n--)
      {
        int t;
        cin>>t;
        string a;
        cin>>a;
        if((a.size()==2&&a[0]>=a[1])||a.size()==1)
        cout<<"NO
    ";
        else
        {
          cout<<"YES
    2
    ";
          cout<<a[0]<<" ";
          for(int i=1;i<a.size();i++)
          cout<<a[i];
          cout<<"
    ";
        }
      }
    }
    

    Digital root(数学)

    公式为9*(k-1)+x,开long long

    代码

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
      ios::sync_with_stdio(0);
      cin.tie(0);
      cout.tie(0);
      int n;
      cin>>n;
      while(n--)
      {
        long long k,x;
        cin>>k>>x;
        cout<<9*(k-1)+x<<"
    ";
      }
    }
    

    C. Brutality(暴力?)

    实际上这题我感觉暴力也行啊。。。当时还想着优化

    枚举区间排序区间然后加和不就行了应该没有太大问题

    我这里想了想用优先队列先预处理一下,把每个区间内的值先算好,然后最后直接加上就行

    实际上这理论上已经跑了nnlogn了抱着试一试的态度没想到ac了 124ms不可思议

    因为这道题的罚时的原因也是没有进前2000

    代码

    #include <bits/stdc++.h>
    using namespace std;
    priority_queue<long long> st[666666];
    long long bk[666666],num[666666];
    int main()
    {
      ios::sync_with_stdio(0);
      cin.tie(0);
      cout.tie(0);
      int n,k,p=0;
      cin>>n>>k;
      for(int i=0;i<n;i++)
      cin>>num[i];
      string a;
      cin>>a;
      a+='#';
      for(int i=0;i<a.size();i++)
      {
        if(a[i]!=a[i+1])
        bk[i]=p,p++;
        else
        bk[i]=p;
      }
      for(int i=0;i<n;i++)
      st[bk[i]].push(num[i]);
      int f=1,pre=-1,mk=0;
      long long sum=0;
      for(int i=0;i<n;i++)
      {
        if(bk[i]!=pre)
        pre=bk[i],f=1,mk=0;
        if(f)
        {
          sum+=st[bk[i]].top();
          st[bk[i]].pop();
          mk++;
        }
        if(mk==k)
        f=0,mk=0;
      }
      cout<<sum;
    }
    

    D. Compression(模拟)

    题目意思实际上是把大矩阵分割成许多小矩阵每个小矩阵都是正方形,并且边长都能被大矩阵所整除。然后去模拟小矩阵里面是不是所有的数字都是一样的,不同的小矩阵可以不一样

    5个for模拟瞎暴力即可

    代码

    #include <bits/stdc++.h>
    using namespace std;
    int n,mark;
    string t[666666];
    int dfs(int x)
    {
      for(int i=0;i<n;i+=x)
      for(int j=0;j<n;j+=x)
      {
        char te=t[i][j];
        for(int k=i;k<i+x;k++)
        for(int m=j;m<j+x;m++)
        if(t[k][m]!=te)
        return 0;
      }
      return 1;
    }
    int main()
    {
      ios::sync_with_stdio(0);
      cin.tie(0);
      cout.tie(0);
      cin>>n;
      for(int i=0;i<n;i++)
      {
        string a;
        cin>>a;
        for(int j=0;j<a.size();j++)
        {
          if(a[j]=='0')
          t[i]+="0000";
          if(a[j]=='1')
          t[i]+="0001";
          if(a[j]=='2')
          t[i]+="0010";
          if(a[j]=='3')
          t[i]+="0011";
          if(a[j]=='4')
          t[i]+="0100";
          if(a[j]=='5')
          t[i]+="0101";
          if(a[j]=='6')
          t[i]+="0110";
          if(a[j]=='7')
          t[i]+="0111";
          if(a[j]=='8')
          t[i]+="1000";
          if(a[j]=='9')
          t[i]+="1001";
          if(a[j]=='A')
          t[i]+="1010";
          if(a[j]=='B')
          t[i]+="1011";
          if(a[j]=='C')
          t[i]+="1100";
          if(a[j]=='D')
          t[i]+="1101";
          if(a[j]=='E')
          t[i]+="1110";
          if(a[j]=='F')
          t[i]+="1111";
        }
      }
      for(int i=1;i<=n;i++)
      {
        if(n%i==0)
        {
          if(dfs(i))
          mark=i;
        }
      }
      cout<<mark;
    }
    
  • 相关阅读:
    快速排序(java实现)
    java8 stream一些知识
    Lombok安装、简单使用、入门
    explain mysql 结果分析
    MySQL调优三部曲(二)EXPLAIN
    MySQL调优三部曲(一)慢查询
    排查问题
    Dynamics 365 获取值 设置值
    MySql CP 表 和 数据
    Dynamics 365单项选项集&多项选项集
  • 原文地址:https://www.cnblogs.com/baccano-acmer/p/10327521.html
Copyright © 2011-2022 走看看