感觉自己的思考方式不太适合OI,求建议
  • 板块灌水区
  • 楼主Infinitas
  • 当前回复10
  • 已保存回复10
  • 发布时间2024/6/12 19:49
  • 上次更新2024/6/12 22:10:40
查看原帖
感觉自己的思考方式不太适合OI,求建议
209844
Infinitas楼主2024/6/12 19:49

如题,我是新手,接触OI还没多久,已经把语言基础知识和一些基础算法过了一遍。最近在做题的时候,我越来越频繁的感觉自己在用「做数学题的思路」做OI题。举个例子,P2669 金币,我的做法是这样的:

#include <cstdio>
#include <cmath>
#include <cstring>

using namespace std;

int main()
{
	int m,s;
	float k;
	scanf("%f",&k);
	m = (int)floor(0.5*(sqrt(1+8*k)-1));
	s = m*(m+1)*(2*m+1)/6 + (m+1)*(k-0.5*(m+1)*m);
	printf("%d",s);
	return 0;
}

我自己做的时候感觉没多难,就按照数学题的思路把公式写进代码里就一遍AC了,但题解里大多用的是循环模拟的思路,这让我感到困惑。在做P1424和更多的题目时也碰到了类似问题。想请教各位:

1.我习惯的这种「直接推出公式再翻译成代码」的思路是否适合OI?在学习的中后期是否会碰到阻碍?

2.如果在做题时使用「做数学的思路」解决而遇到困难,我应该进一步精进数学技巧,还是让自己适应「OI式」的思路?

以上,希望得到各位建议。

2024/6/12 19:49
加载中...