ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Leetcode刷题笔记21:202009(最终计划使用C++ | CCF CSP竞赛具体备赛计划)

2021-03-27 22:02:33  阅读:256  来源: 互联网

标签:include 21 int scanf d% 备赛 CCF d2 d3


第十九天 2021-3-27备战CCFCSP
刷题模块:CCF 202009

最终计划

  1. AcWing 算法基础课程 每日一个视频
  2. AcWing 算法基础课程 每日多个算法模板
  3. CCF CSP 每日5道比赛真题

比赛技巧:如何改变输入输出流

#include <stdio.h>

int main(){
	freopen("in.txt","r",stdin);
	freopen("out.txt","w",stdout);
	int x,y;
	scanf("%d%d",&x,&y);
	printf("%d %d",x,y);
} 

CCF CSP:202009-1

枚举法,时间复杂度O(n)

#include<iostream>

using namespace std;

const int N=200;
int n,X,Y,p1=0,p2=1,p3=2;
int x,y;
int d2[N];

int main(){
    scanf("%d%d%d",&n,&X,&Y);
    for(int i=0;i<n;i++){
        scanf("%d%d",&x,&y);
        d2[i]=(x-X)*(x-X)+(y-Y)*(y-Y);
    }

    for(int i=0;i<n;i++){
        if(d2[i]<d2[p1]) p1=i;;
    }
    for(int i=0;i<n;i++){
        if(i!=p1 && d2[i]<d2[p2]) p2=i;
    }
    for(int i=0;i<n;i++){
        if(i!=p1 && i!=p2 &&d2[i]<d2[p3]) p3=i;
    }
    printf("%d\n%d\n%d\n",p1+1,p2+1,p3+1);
}

大佬解法:只保存最小的前三位

#include<iostream>
#include<stdio.h>
using namespace std;

int main(){
	int n,X,Y;
	scanf("%d%d%d",&n,&X,&Y);
	
	int dx,dy;
	int no1=0,no2=0,no3=0,d1=1e8,d2=1e8,d3=1e8;
	
	for(int i=0;i<n;i++){
		scanf("%d%d",&dx,&dy);
		int d=(X-dx)*(X-dx)+(Y-dy)*(Y-dy);
		
		if(d<d3){
			d3=d;
			no3=i;
		}
		
		if(d3<d1){
			swap(d3,d1);
			swap(no3,no1);
			swap(d3,d2);
			swap(no3,no2); 
		}else if(d3<d2){
			swap(d3,d2);
			swap(no3,no2);
		}
	}
	
	printf("%d\n%d\n%d\n",no1+1,no2+1,no3+1);
	return 0;
} 

CCF CSP:202009-2

个人解法,坑真多

#include<stdio.h>
#include<iostream>
#include<algorithm>

using namespace std;

int n,k,t,xl,yd,xr,yu;
int pass=0,stay=0;
int pcount,scount,maxscount,flag;
int x,y;

int main(){
	freopen("in.txt","r",stdin);
	freopen("out.txt","w",stdout);
	
	scanf("%d%d%d%d%d%d%d",&n,&k,&t,&xl,&yd,&xr,&yu);
	
	for(int i=0;i<n;i++){
		pcount=0;
		scount=0;
		maxscount=0;
		flag=0;
		for(int j=0;j<t;j++){
			scanf("%d%d",&x,&y);
			if(x>=xl && x<=xr && y>=yd && y<=yu){
				pcount++;
				if(flag) scount++;
				else scount=1;	
				flag=1;
			}else{
				maxscount=max(scount,maxscount);
				flag=0;
			}
		}
		maxscount=max(scount,maxscount);
		if(pcount>0) pass++;
		if(maxscount>=k) stay++;
	}
	
	printf("%d\n%d",pass,stay);
	return 0;
}

标签:include,21,int,scanf,d%,备赛,CCF,d2,d3
来源: https://blog.csdn.net/MC_XiaoFang/article/details/115263324

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有