我可以不吃啊 发表于 2024-10-27 20:12:24

Complete the Sequence (天生完整序列数)第一次做英文c++的题

https://img2024.cnblogs.com/blog/3546667/202410/3546667-20241027205602950-1994827510.png
https://img2024.cnblogs.com/blog/3546667/202410/3546667-20241027205606187-338500661.png
   第一次接触全是英语的题,怎么会有这么难的呢?
   首先我拿起了它和中文的题目一对比,发现分成了5个板块,将这5个板块细细拆分后,了解到了大意,大意为输入n组数据,其中输入x个数,然后找出它的规律,输出接下来的y个数。比如一组数据,1、2、3、4、5、6,要输出剩下的数据,你肯定会不有毫不犹豫的回答。7、8。是的,这就是规律,但是有1组数据难倒了:它有9个1,另有一个2,然后它样例输出却是11,56。这道规律生生难倒了我,可是也只能硬着头皮往前做了,然后发现有一个规律,很深的规律。发现它是一个关于分差的问题,简单来说它是用后一个数减去前面一个数,得到差。然后把这组差继续用后一个数减去前一个数,直到只有末了一个差为止,然后分差就结束了。序列中的数就从0开始把它从末了一个分差的值逐步往上加去。于是我利用差分算出了结果。可是另有一个问题,它总会时间超时,怎么办?我发现不但要用分差,还得用到前缀的知识,然后思考了一会儿,终于把这道题攻破了,可真不容易。
详细解法如下:
include

using namespace std;
int a;

int main()
{
int ans;
cin >> ans;
while(ans--)
{
int n, m;
cin >> n >> m;
for(int i = 0; i < n; i++)
cin >> a;
for(int i = 1; i < n; i ++ )
for(int j = 0; j < n - 1; j++)
a = a - a;
for(int i = 1; i = 0; i--)
for(int j = 0; j < m; j++)
a = a + a;
for(int i = 0; i < m - 1; i++)
cout
页: [1]
查看完整版本: Complete the Sequence (天生完整序列数)第一次做英文c++的题