Codeforces Round #755 (Div. 2, based on Technocup 2022 Elimination Round 2) A-C

现在一看这A-C真的太水了,本来真不用写的,奈何我被骗的跟个*一样,写出来当个教训吧…
上来直接暴力枚举A题,超时了两次我又蹦到C去了,结果C题做了一小时我也不知道哪里错的(读错题了),折回了A推了下公式几分钟就做出来了(不知道我刚开始为啥要暴力…),然后去做B,我压根没注意到题里说方块还可以分割,最后的二十分钟也就这么没了…这一场被英文耍的团团转,分也掉了一大波。
A. Mathematical Addition
所给公式为(x/u)+(y/v)=(x+y)/(u+v),只要把这个公式化简就可以直接做出来了。

#include <bits/stdc++.h>
using namespace std;
#define mod 1000000007
typedef long long ll ;
int main()
{
    ll n,i,j,t,l,r,u,v,x,y;
    cin>>t;
    while(t--)
    {
        cin>>u>>v;
        x=-u*u;
        y=v*v;
        cout<<x<<" "<<y<<endl;
    }
}

B. Coloring Rectangles
这题真的有毒,我本来以为是给一个矩阵,要往里面涂色,求使相邻颜色不同所需要涂的最少方块。结果它其实还可以剪,就随便剪。写一写就知道全剪成1 * 3的矩阵是最少的情况,如果还有剩余就用1*2去剪。

#include <bits/stdc++.h>
using namespace std;
#define mod 1000000007
typedef long long ll ;
int main()
{
    int t,m,n,ans,i;
    cin>>t;
    while(t--)
    {    ans=0;
        cin>>n>>m;
        if((n*m)%3==0) ans=(n*m)/3;
        else ans=(n*m)/3+1;
        cout<<ans<<endl;
    }
}

C. Two Arrays
千万注意两句话:1.Choose k distinct array indices 1≤i1<i2<…<ik≤n.
2.Add 1 to each of ai1,ai2,…,aik, 注意数组a的下标是i1–ik不是1–k,将数组a和数组b排序,只要对应位置数组b和数组a元素的大小差的不是0或1,那都不能转化(如果相差0可以不变,如果相差1就加1,题目中只有不变和加一这两种转变方法)。

#include <bits/stdc++.h>
using namespace std;
#define mod 1000000007
typedef long long ll ;
int a[101];
int b[101];
int main()
{
    int t,m,n,ans,i;
    cin>>t;
    while(t--)
    {   m=1;
        cin>>n;
     for(i=0;i<n;i++)
     {
         cin>>a[i];
     }
      for(i=0;i<n;i++)
     {
         cin>>b[i];
     }
     sort(a,a+n);
     sort(b,b+n);
     for(i=0;i<n;i++)
     {
         if(b[i]-a[i]==1||b[i]-a[i]==0) {m=1;}
         else {m=0;break;}
     }
    if(m==1) cout<<"YES"<<endl;
    else cout<<"NO"<<endl;
    }
}

英语差,还不好好读题,笑话我吧…

上一篇:基于矢量量化图像的联合指纹解密及其matlab实现(1)


下一篇:Linux档案权限篇之一