【Codeforces】Round #488 (Div. 2) 总结


比较僵硬的一场,还是手速不够,但是作为正式成为竞赛生的第一场比赛还是比较圆满的,起码没有FST,A掉ABCD,总排82,怒涨rating两百


A:Fingerprints



A题,就在第一个串中查找第二个串中的数字,最气的是一开始没编译直接交CE了,噗

  1. #include<iostream>
  2. #include<cstdio>
  3. using namespace std;
  4. int read(){
  5. int ans=0,w=1;char c=getchar();
  6. while(!isdigit(c)&&c!='-')c=getchar();
  7. if(c=='-')c=getchar(),w=-1;
  8. while(isdigit(c))ans=ans*10+c-'0',c=getchar();
  9. return ans*w;
  10. }
  11. #define N 20
  12. int a[N],b[N];
  13. int main(){
  14. int n=read(),m=read();
  15. for(int i=1;i<=n;i++)a[i]=read();
  16. for(int j=1;j<=m;j++)b[j]=read();
  17. for(int i=1;i<=n;i++){
  18. for(int j=1;j<=m;j++)
  19. if(a[i]==b[j]){
  20. cout<<a[i]<<" ";
  21. break;
  22. }
  23. }
  24. return 0;
  25. }

B:Knights of a Polygonal Table






B题,照样是手速题,按照能力值排一个序,然后可以用小根堆维护一下当前可以获得的最大价值,然后记录一下就好

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define LL long long
  4. LL read(){
  5. LL ans=0,w=1;char c=getchar();
  6. while(!isdigit(c)&&c!='-')c=getchar();
  7. if(c=='-')c=getchar(),w=-1;
  8. while(isdigit(c))ans=ans*10+c-'0',c=getchar();
  9. return ans*w;
  10. }
  11. #define N 100010
  12. struct Node{
  13. LL p,c,id,ans;
  14. }a[N];
  15. LL n,k,ans[N];
  16. priority_queue<LL,vector<LL>,greater<LL> > q;
  17. bool cmp(Node a,Node b){
  18. return a.p<b.p;
  19. }
  20. bool cmp2(Node a,Node b){
  21. return a.id<b.id;
  22. }
  23. int main(){
  24. LL sum=0;
  25. n=read();k=read();
  26. for(LL i=1;i<=n;i++)a[i].p=read();
  27. for(LL i=1;i<=n;i++)a[i].c=read(),a[i].id=i;
  28. sort(a+1,a+n+1,cmp);
  29. for(LL i=1;i<=min(k+1,n);i++){
  30. a[i].ans=a[i-1].ans+a[i].c;
  31. q.push(a[i].c);
  32. sum+=a[i].c;
  33. }
  34. for(LL i=k+2;i<=n;i++){
  35. LL top=q.top();q.pop();
  36. sum-=top;
  37. q.push(a[i].c);
  38. sum+=a[i].c;
  39. a[i].ans=sum;
  40. }
  41. sort(a+1,a+n+1,cmp2);
  42. for(LL i=1;i<=n;i++)
  43. printf("%I64d ",a[i].ans);
  44. return 0;
  45. }

C:Two Squares










就是给你两个正方形,判断有没有相交

我把这种题叫做不用脑子却死一片

final test的时候有一大堆人这题fst了。。诶

把握好代码的细节,然后写几个特判就好了

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. struct Node{
  4. int x,y;
  5. }a[5],b[5];
  6. bool cmp(Node a,Node b){
  7. if(a.x==b.x)return a.y<b.y;
  8. return a.x<b.x;
  9. }
  10. int main(){
  11. for(int i=1;i<=4;i++)scanf("%d%d",&a[i].x,&a[i].y);
  12. for(int i=1;i<=4;i++)scanf("%d%d",&b[i].x,&b[i].y);
  13. sort(a+1,a+5,cmp);
  14. sort(b+1,b+5,cmp);
  15. int tmp=0;
  16. if(b[4].x<a[1].x)tmp=1;
  17. if(b[2].y>a[2].y)tmp=1;
  18. if(b[3].y<a[1].y)tmp=1;
  19. if(b[1].x>a[3].x)tmp=1;
  20. if(tmp){
  21. printf("NO");
  22. return 0;
  23. }
  24. //zuoshang
  25. if(b[1].x<a[2].x&&b[3].y>a[2].y){
  26. int t=b[2].y-b[2].x;
  27. if(t+a[2].x>a[2].y)tmp=1;
  28. }
  29. //zuoxia
  30. if(b[1].x<a[1].x&&b[2].y<a[1].y){
  31. int t=b[3].x+b[3].y;
  32. if(t-a[1].x<a[1].y)tmp=1;
  33. }
  34. //youshang
  35. if(b[3].y>a[4].y&&b[4].x>a[4].x){
  36. int t=b[1].x+b[1].y;
  37. if(t-a[4].x>a[4].y)tmp=1;
  38. }
  39. //youxia
  40. if(b[2].y<a[3].y&&b[4].x>a[3].x){
  41. int t=b[3].y-b[3].x;
  42. if(t+a[3].x<a[3].y)tmp=1;
  43. }
  44. if(tmp){
  45. printf("NO");
  46. return 0;
  47. }
  48. printf("YES");
  49. return 0;
  50. }

D:Open Communication






身为一个蒟蒻这种题我还是少碰的好,题意很毒瘤,然后我就用非常不正常的做法A了,我都不知道我是怎么A的。

大概是有两个无聊的人,他们互相传递数字对,让你确定他们的秘密数字是什么,然后秘密数字是:对于两个元素不完全相等数对,其中一个相等的元素

然后可以确定输出那个数,你不能确定但那两个人可以确定输出0,你和其中一人都不能确定输出-1

然后我就记录一下在每个人的信息里可能匹配的和全局可能匹配的,加一堆特判就好了,反正是乱搞做法

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define N 30
  4. struct Pai{
  5. int a,b;
  6. }x[N],y[N];
  7. int n,m,pic[N];
  8. int vis1[N][N],vis2[N][N];
  9. int tmp1[N],tmp2[N];
  10. int main(){
  11. cin>>n>>m;
  12. for(int i=1;i<=n;i++)cin>>x[i].a>>x[i].b;
  13. for(int i=1;i<=m;i++)cin>>y[i].a>>y[i].b;
  14. for(int i=1;i<=n;i++)
  15. for(int j=1;j<=m;j++){
  16. if(x[i].a==y[j].a&&x[i].b==y[j].b)continue;
  17. if(x[i].a==y[j].b&&x[i].b==y[j].a)continue;
  18. if(x[i].a==y[j].a||x[i].a==y[j].b)pic[x[i].a]=1,vis1[i][x[i].a]=1,vis2[j][x[i].a]=1;
  19. if(x[i].b==y[j].a||x[i].b==y[j].b)pic[x[i].b]=1,vis1[i][x[i].b]=1,vis2[j][x[i].b]=1;
  20. }
  21. for(int i=1;i<=n;i++)
  22. for(int j=1;j<=9;j++)tmp1[i]+=vis1[i][j];
  23. for(int i=1;i<=m;i++)
  24. for(int j=1;j<=9;j++)tmp2[i]+=vis2[i][j];
  25. int siz=0,tip;
  26. for(int i=1;i<=9;i++){
  27. siz+=pic[i];
  28. if(pic[i])tip=i;
  29. }
  30. if(siz==1){
  31. cout<<tip;
  32. return 0;
  33. }
  34. if(!siz){
  35. cout<<"-1";
  36. return 0;
  37. }
  38. for(int i=1;i<=n;i++){
  39. if(tmp1[i]>1){
  40. cout<<"-1";
  41. return 0;
  42. }
  43. }
  44. for(int i=1;i<=m;i++){
  45. if(tmp2[i]>1){
  46. cout<<"-1";
  47. return 0;
  48. }
  49. }
  50. cout<<"0";
  51. return 0;
  52. }

E:Careful Maneuvering




F:Compute Power



【Codeforces】Round #488 (Div. 2) 总结的更多相关文章

  1. Codeforces Round #488 Div. 1

    A:枚举每个点判断是否同时在两个正方形中即可. #include<iostream> #include<cstdio> #include<cmath> #inclu ...

  2. [Codeforces Round#488]Div.2

    总结 这是我无聊透顶肝到三点半的一场 cf ,结果还真够无聊的 这套题涵盖了英语题,语文题,模拟题.注重考查了选手的英语素养能力,语文阅读能力和精湛的模拟和枚举能力.是不可多得的一套好题. 没什么单独 ...

  3. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  4. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  5. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  6. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  7. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  8. Codeforces Round #262 (Div. 2) 1003

    Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...

  9. Codeforces Round #262 (Div. 2) 1004

    Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...

随机推荐

  1. IIS和ASP.NET MVC 管道处理模型

    转载自  博客园 青羽 http://www.cnblogs.com/tenghoo/archive/2009/11/04/IIS_And_ASPNET_Http_Runtime_Pipeline.h ...

  2. org.springframework.stereotype.Service和com.alibaba.dubbo.config.annotation.Service两种service的区别

    这两个Service,都可以在service类头上使用@Service的注解,于是我就写错了,查了半天才发现.他们的区别大概是这个样子的: org.springframework.stereotype ...

  3. Visual Studio 2017 序列号 Key 激活码 VS2017 注册码

    Visual Studio 2017(VS2017) 企业版 Enterprise 注册码 序列号:NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Visual Studio 2017(V ...

  4. 使用Idea工具nodeJS+mysql开发项目

    一.MySQL Server的安装 1.mysql官网下载文件包:[我使用的版本是:mysql_5.7.17] 2.解压Zip压缩包: 3.安装:命令行:D:\soft\mysql-5.7.17-wi ...

  5. Struts2的Convention插件

    Struts2的Convention插件的作用:在Struts2中的/lib/struts2-convention-plugin-x.x.xx.x.jar Convention插件会自动搜索位于act ...

  6. ckeditor5富文本编辑器在vue中的使用

    安装依赖: npm install --save @ckeditor/ckeditor5-vue @ckeditor/ckeditor5-build-classic 要创建编辑器实例,必须首先将编辑器 ...

  7. 《Effective C++》第3章 资源管理(2)-读书笔记

    章节回顾: <Effective C++>第1章 让自己习惯C++-读书笔记 <Effective C++>第2章 构造/析构/赋值运算(1)-读书笔记 <Effecti ...

  8. c# DataTable 导出csv文件

    using System; using System.Data; using System.Configuration; using System.Collections.Generic; using ...

  9. SQL 测验

    1.SQL 指的是? 您的回答:Structured Query Language 2.哪个 SQL 语句用于从数据库中提取数据? 您的回答:SELECT 3.哪条 SQL 语句用于更新数据库中的数据 ...

  10. Content-type与json对象/字符串杂谈

    这几天在对接项目另一个乙方的下行接口,因为最近一直用php开发,所以当那边接口文档上规定了接口传参类型的 时候,瞬间搞混了,但是这次的出错也让我对http的数据传输有了新的认知. 1.http的数据传 ...