题意:给定一个n(1 <= n <= 10^5)长度的序列,其中有不确定的数字为'?',从前往后,每相邻k项加起来可得到一个n - k + 1长度的新序列,求是否存在一种解满足:
1、使这个n - k + 1的新序列递增;
2、如果有多解,求一种解使的所有数绝对值加起来最小。
若存在,则输出这个序列,否则输出"Incorrect sequence"。
每相邻k项加起来,例如a1,a2,a3,a4,每3项的话,是否满足递增即就是看是否有a1 + a2 + a3 < a2 + a3 + a4,化简后即a1 < a4,所以每隔k项必须递增。其次,如果有多解,那么让其中这些带问号的数的绝对值尽量靠近0,题目中还可能出现多个问号连在一起,对于这种情况需要看整段的前驱和后继。
一遍过,但代码写的挺麻烦,讨论情况太多了,以后要多学会汇总情况。
#include #include #include #include #include #include #include #include #include #include #include #include #include
转载地址:https://blog.csdn.net/weixin_30549657/article/details/95796240 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!