算法竞赛必会题型:约会天数、格子圆交集等4大问题详解
创作时间:
2025-01-22 09:36:08
作者:
@小白创作中心
算法竞赛必会题型:约会天数、格子圆交集等4大问题详解
本文整理了几个算法竞赛中的经典问题及其解法,包括格子与圆交集问题、约会天数计算、斐波那契数列余数规律以及合并石头代价问题。每个问题都给出了详细的解题思路和C++代码实现,适合编程爱好者和算法学习者参考。
一. 约会
这道题目涉及n*n的格子和一个直径为2n-1的圆。如果逐个格子判断是否与圆环有交集,时间复杂度会很高。注意到圆恰好仅与一个方格有两个交线(一进一出),再加上首尾相连,可以得出:
格子数等于所有交线数 = (2*n-1)4 = 8n-4
#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
int main()
{
int n;
while (scanf("%d",&n)==1&&n)
{
cout<<8*n-4<<endl;
}
return 0;
}
二. 约会(II)
能约会的那天即是三的倍数,[1,a]天能约会的天数=a/3;则[a,b]能约会的天数=b/3-(a-1)/3;
注:
- 第a天也要考虑在内
- 不能写为(b-(a-1))/3 可以通过sample判断这种写法的错误性
- 九位数用long才装得下
#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
int main()
{
long a,b;
while(scanf("%ld%ld",&a,&b)==2&&a)
{
printf("%ld\n",b/3-(a-1)/3);
}
return 0;
}
三. 斐波那契数列
如果我们先算出数列的值,还是求f(n) (mod3) 时间复杂度都是o(n) 。前者数据过大会爆,10的10次方 o(n)也可能TLE
故尝试寻找o(1)
我们寻找余数的规律
1
2 0 2 2 1 0 1 1
2 0 2 2 ...
我们不难发现是八个为一组循环(下标为2,6输出yes)
#include<cstdio>
#include<cmath>
#include<iostream>
using namespace std;
int main()
{
long n;
while(scanf("%ld",&n)==1)
{
n%=8;
if(n==2||n==6)
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
}
return 0;
}
四. 合并石头
不妨以a,b,c三块石头为例
sum=ab+(a+b)*c=ab+ac+bc即无论怎么合并大小都是不变的
归纳可得:代价就是两堆石头的乘积的求和
注:
- 用到了__int128_t的输出
- vector的使用
#include <iostream>
#include<vector>
using namespace std;
inline void Print(__int128_t sum)
{
if(sum>9)
Print(sum/10);
putchar('0'+sum%10);
return;
}
int main()
{
unsigned int n,i,j;
scanf("%u",&n);
vector <long long> vec(n);
for(i=0;i<n;i++)
{
scanf("%lld",&vec[i]);
}
__int128_t sum=0;
for(i=0;i<n;i++)
{
for(j=i+1;j<n;j++)
{
sum+=vec[i]*vec[j];
}
}
Print(sum);
// 请在此输入您的代码
return 0;
}
热门推荐
昆山:54万志愿者绘就“人人可为、时时可为、处处可为”最美风景
冬天进补,吃肉不如喝这3道汤,简单一煮,暖胃驱寒,补钙强骨骼
冬季养生汤全攻略:从食材到食谱,详解养生汤的制作与功效
冬天吃什么补身体好?这几种食材让你温暖整个冬季!
川椒种业为您解析辣椒炭疽病的防治策
辣椒炭疽病的防治方法有哪些
孕妇便秘攻略:科学应对,轻松孕期
中医调理助你告别孕期便秘
孕期便秘怎么破?专家支招让你告别烦恼
孕期便秘怎么办?6个实用解决方案帮你轻松应对这一困扰
甲型H1N1流感来袭,这样吃最靠谱!
眼镜工厂:眼镜要延寿学会这四招就够了!
掌握扑克阻断策略,赢得关键牌局
紫色紫罗兰花语的意义与传承(探寻紫罗兰的寓意)
紫罗兰花的意义与象征(探究紫罗兰的寓意与美学特点)
牛蒡根的功效与作用
牛蒡根对肝的功效与作用
牛蒡茶:天然保健饮品,健康生活新选择
深圳市中医肛肠医院便秘调理指南:中医调理+生物反馈治疗
650万司机面临失业,为何还力推无人驾驶?背后竟藏着一盘大棋!
眼镜也有使用寿命?每天戴着“过期”眼镜,后果远比想象的更可怕!
天坛公园门票预订全攻略:畅游公园平台使用指南
2024年家庭用电成本大揭秘:从政策到节电全攻略
全电厨房:省电又环保的新潮流
岑:岑怎么读,不读yin,进来看看你猜得对不对,山今读什么字,岑是什么意思?
普通体检到底能不能查出癌症?真相是……
小明和罗素教你告别摆烂,重燃生活热情
春节贴春联,你真的懂上下联吗?
眼干燥症是什么原因引起的?眼睛干涩如何治疗
香蕉,腹泻患者的救星?