Codeforces Round 514 (Div.2)

比赛传送门

熬夜氪肝打\(CF\),好不容易搞出来三道题,TMD\(FST\)
\(\rm{QAQ}\),还是第二道题,死因:数组开小。我什么时候能认真一些啊……

第三道题因为错了太多+做得完,和第二题一个分

不过我竟然涨了4个rating(可能是我太菜了,已经不屑于扣我的\(\tt{rating}\)了)


\(\it{A.Cashier}\)

还是水,不过比上次好些

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int read(){
    int k=0,f=1; char c=getchar();
    for(;c<'0'||c>'9';c=getchar())
      if(c=='-') f=-1;
    for(;c>='0'&&c<='9';c=getchar())
      k=k*10+c-48;
    return k*f;
}
int ans=0;
int main(){
    int n=read(),l=read(),a=read();
    int x1=0;
    for(int i=1;i<=n;i++){
        int x=read(),y=read();
        ans+=(x-x1)/a;
        x1=x+y;
    }
    ans+=(l-x1)/a;
    cout<<ans;
    return 0;
}

\(\sf{B.Forgery}\)

这题我一开始毫无思路,所以先刚的\(C\)题再回来做的,然后就数组开小了……

我们枚举每一个周围全是\(#\)的元素,然后将它中间的点的坐标入栈。
枚举完毕后,我们新建一张空白图,将坐标依次出栈,在空白图上将它周围的点全变成\(#\),然后与原图比较

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int read(){
    int k=0,f=1; char c=getchar();
    for(;c<'0'||c>'9';c=getchar())
      if(c=='-') f=-1;
    for(;c>='0'&&c<='9';c=getchar())
      k=k*10+c-48;
    return k*f;
}
bool mapp[1010][1010],wmap[1010][1010];
//check枚举每个元素
bool check(int x,int y){
    if(mapp[x+1][y]&&mapp[x+2][y]&&mapp[x][y+1]&&mapp[x][y+2]
        &&mapp[x+1][y+2]&&mapp[x+2][y+2]&&mapp[x+2][y+1])
        return 1;
    else return 0;
}
int wx[1000010],wy[1000010],top;//就是这个地方,数组开小了1000倍……
int fx[9]={0,1,0,-1,0,1,-1,1,-1},
    fy[9]={0,0,1,0,-1,-1,1,1,-1};
int main(){
    int n=read(),m=read();
    for(int i=1;i<=n;i++)
      for(int j=1;j<=m;j++){
          char c; cin>>c;
          if(c=='#') mapp[i][j]=1;
      }
    for(int i=1;i<=n;i++)
      for(int j=1;j<=m;j++){
          if(mapp[i][j]){
              if(check(i,j)) wx[++top]=i+1,wy[top]=j+1;
          }
      }
    //填新图
    while(top){
        int x=wx[top],y=wy[top]; --top;
        for(int i=1;i<=8;i++) wmap[x+fx[i]][y+fy[i]]=1;
    }
    //比较
    for(int i=1;i<=n;i++)
      for(int j=1;j<=m;j++)
        if(mapp[i][j]!=wmap[i][j]){
            cout<<"NO"; exit(0);
        }
    cout<<"YES";
    return 0;
}

\(\tt{C.Sequence\;Transformation}\)

能自己做出\(\mathbb{C}\)题来,还是很开心的。

因为题中要求字典序最大,但开始几次无论我们删哪个数,它们的\(gcd\)肯定都是\(1\),所以我们只要让数列的\(gcd\)尽量早的不为\(1\)就好了,所以我们可以先将奇数删去,这样可以最早的输出一个大于\(1\)的数——\(2\)
以此类推,我们再留下\(4\)的倍数、留下\(8\)的倍数……一直到最接近并小于\(n\)\(2\)的整数次幂。
之后比较麻烦的是最后一位数的判定。如果\(n\)能被\(ans[n-1]\)整除,那为了字典序最大,我们要最后再把\(n\)删去。如果\(n\)不能被\(ans[n-1]\)整除,为了字典序最大,我们要提前删去\(n\),来保证最早输出\(2\)的幂

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
long long read(){
    long long k=0,f=1; char c=getchar();
    for(;c<'0'||c>'9';c=getchar())
      if(c=='-') f=-1;
    for(;c>='0'&&c<='9';c=getchar())
      k=k*10+c-48;
    return k*f;
}
long long ans[1000010],hhh=1,pos;
int main(){
    long long n=read(); long long cnt=n;
    if(n==1){
        cout<<"1"; return 0;
    }
    while(cnt){
        long long tot=cnt/2; if(cnt%2) tot++;
        for(long long i=1;i<=tot;i++) ans[++pos]=hhh;
        cnt-=tot; hhh<<=1;
    }
    if(!(n%(ans[n-1]))) ans[n]=n;
    else ans[n]=(ans[n-1]*(n/ans[n-1]));
    for(long long i=1;i<=n;i++) cout<<ans[i]<<" ";
    return 0;
}

转载于:https://www.cnblogs.com/wxl-Ezio/p/9779596.html

内容概要:该题库专为研究生入学考试计算机组成原理科目设计,涵盖名校考研真题、经典教材课后习题、章节题库和模拟试题四大核心模块。名校考研真题精选多所知名高校的计算机组成原理科目及计算机联考真题,并提供详尽解析,帮助考生把握考研命题趋势与难度。经典教材课后习题包括白中英《计算机组成原理》(第5版)和唐朔飞《计算机组成原理》(第2版)的全部课后习题解答,这两部教材被众多名校列为考研指定参考书目。章节题库精选代表性考题,注重基础知识与重难点内容,帮助考生全面掌握考试大纲要求的知识点。模拟试题依据历年考研真题命题规律和热门考点,精心编制两套全真模拟试题,并附标准答案,帮助考生检验学习成果,评估应试能力。 适用人群:计划参加研究生入学考试并报考计算机组成原理科目的考生,尤其是需要系统复习和强化训练的学生。 使用场景及目标:①通过研读名校考研真题,考生可以准确把握考研命题趋势与难度,有效评估复习成效;②通过经典教材课后习题的练习,考生可以巩固基础知识,掌握解题技巧;③通过章节题库的系统练习,考生可以全面掌握考试大纲要求的各个知识点,为备考打下坚实基础;④通过模拟试题的测试,考生可以检验学习成果,评估应试能力,为正式考试做好充分准备。 其他说明:该题库不仅提供详细的题目解析,还涵盖了计算机组成原理的各个方面,包括计算机系统概述、数据表示与运算、存储器分层、指令系统、中央处理器、总线系统和输入输出系统等。考生在使用过程中应结合理论学习与实践操作,注重理解与应用,以提高应试能力和专业知识水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值