蓝桥杯day12刷题日记

P8720 蓝桥杯 2020 省 B2 平面切分

思路:首先借用dalao的图解释一下,又多出一条与当前平面任意一条直线都不重合线时,多了的平面是交点数+1,所以用双层循环每次往里面加一条直线,计算交点

cpp 复制代码
#include <iostream>
#include <cstring>
#include <set>
using namespace std;
int n;
int a,b;
typedef pair<long double,long double> LD;
set<LD> II;
LD q[1010];

int main()
{
	cin>>n;
	int ans=-1;
	for(int i=0;i<n;i++)
	{
		cin>>a>>b;
		II.insert({a,b});
	} 
	for(auto i=II.begin();i!=II.end();i++)
	{
		q[++ans]={(*i).first,(*i).second};
	}
	
	int res=1;
	for(int i=0;i<=ans;i++)
	{
		set<LD> lll;
		for(int j=0;j<=i;j++)
		{
			long double k1=q[i].first;
			long double b1=q[i].second;
			long double k2=q[j].first;
			long double b2=q[j].second;
			
			if(k1==k2) continue;
			long double x=(b2-b1)/(k1-k2);
			long double y=k1*x+b1;
			lll.insert({x,y});
	    }
	    res+=lll.size();
	    res++;
	}
	cout<<res;
	return 0;
}

P8651 蓝桥杯 2017 省 B 日期问题

有点烦的一道题,刚开始没想闰年,想着直接几个if判断解决,浪费了快一个小时调程序

附未加闰年判断的代码

cpp 复制代码
#include <iostream>
using namespace std;
int a,b,c;

int daysOfMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

int main()
{
	scanf("%d/%d/%d",&a,&b,&c);
	if(a>=60)
	{
		if(b>=1&&b<=12&&c<=daysOfMonth[b]) printf("19%02d-%02d-%02d\n",a,b,c);
	}
	else if(a<=59)
	{
		if(b>=1&&b<=12&&c<=daysOfMonth[b]) printf("20%02d-%02d-%02d\n",a,b,c);
	}
	
	if(c>=60)
	{
		if(a>=1&&a<=12&&b<=daysOfMonth[a]) printf("19%02d-%02d-%02d\n",c,a,b);
		if(b>=1&&b<=12&&a<=daysOfMonth[b]) printf("19%02d-%02d-%02d\n",c,b,a);
	}
	else if(c<=59)
	{
		if(a>=1&&a<=12&&b<=daysOfMonth[a]) printf("20%02d-%02d-%02d\n",c,a,b);
		if(b>=1&&b<=12&&a<=daysOfMonth[b]) printf("20%02d-%02d-%02d\n",c,b,a);
	}
	return 0;
}

思路:这个数据范围三种循环也不会t,所以就这样直接判断,还有记得根据年份转换一下二月份的天数

cpp 复制代码
#include <iostream>
using namespace std;
int a,b,c;
int daysOfMonth[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

bool isrunnian(int x)
{
    return (x%4==0&&x%100!=0)||(x%400==0); 
}

int main()
{
	scanf("%d/%d/%d",&a,&b,&c);
	for(int i=1960;i<=2059;i++)
	{
		daysOfMonth[2]=(isrunnian(i)?29:28);
		for(int j=1;j<=12;j++)
		{
			for(int k=1;k<=daysOfMonth[j];k++)
			{
				if((a==i%100&&b==j&&c==k)||
				   (a==j&&b==k&&c==i%100)||
				   (a==k&&b==j&&c==i%100)) 
				   printf("%d-%02d-%02d\n",i,j,k);
			}
		}
	}
	return 0;
}

P8635 蓝桥杯 2016 省 AB 四平方和

思路:直接循环找数,让n减去其他三个数的平方和,开根号以后因为是整数,所以会丢掉小数点后的数字,利用这个判断

cpp 复制代码
#include <iostream>
#include <cmath>
using namespace std;
int n;

int main()
{
	cin>>n;
	for(int a=0;a*a<n;a++)
	{
		for(int b=a;a*a+b*b<n;b++)
		{
			for(int c=b;a*a+b*b+c*c<n;c++)
			{
				int t=n-a*a-b*b-c*c;
				int d=sqrt(t);
				if(d*d==t)
				{
					printf("%d %d %d %d",a,b,c,d);
					return 0; 
				}
			}
		}
	}
	return 0;
} 
相关推荐
爱聊灵光的维C7 分钟前
C语言初阶:关于函数设计的详细讲解和注意事项
c语言·开发语言·青少年编程·蓝桥杯·学习方法
小白起 v8 分钟前
02-数组与链表
数据结构·链表
无心水25 分钟前
15、云原生架构设计理论与实践 核心考点与学习笔记
笔记·学习·云原生·架构师·软考·系统架构设计师·软考系统架构设计师
动词ing37 分钟前
【学习笔记】51单片机 独立按键控制LED显示二进制
笔记·学习·51单片机
叼烟扛炮1 小时前
Linux 学习笔记(三十九):网络基石——TCP/IP 模型与 UDP 实战
linux·运维·网络·笔记·学习·tcp/ip
闲云野鹤在人间1 小时前
头秃修炼手册:StorageClass+StatefulSet+ETCD 全套渡劫笔记
linux·数据库·笔记·云原生·kubernetes·etcd
Figo_Cheung1 小时前
Figo基于结构空间算法假设(SSAH)的生成式大模型优化范式与工程实现边界研究——提出适应AGI架构演化的自适应拓扑感知表征机制
算法·架构·agi
小菜要扣篮1 小时前
Ubuntu 下使用 vscode 打开 C++ 项目后,无法通过 F12 定位到定义问题解决
c++·vscode·ubuntu
wuminyu1 小时前
JVM规范学习总结:class执行性能差异
java·linux·c语言·jvm·c++
派大猩猩_1 小时前
选题散在 20 篇笔记里?Nutstore Sync在 Obsidian 里创建选题小工具,创作动线短一半
笔记·obsidian·obsidian插件·obsidian ai