【链接】 我是链接,点我呀:)

【题意】

在这里输入题意

【题解】

a1+a2+...+aka1a2+a3+...+ak+1<a3+a4+...+ak+2

->a2<ak+2

类似还可以推出

a3<ak+3

a4<ak+4

...

则有

a1<ak+1<a2k+1<a3k+1...

a2<ak+2<a2k+2<a3k+2...

...

也就是每隔k个要是递增的。

你的任务就是维护每隔k个数字递增。

我们先考虑a[1],a[1+k],a[1+2k],a[1+3k]...这个序列。

枚举所有不是问号的位置i,j(i < j) 且i+1..j-1之间的位置都是问号。



 首先判断i-j-1是否大于等于a[j]-a[i]-1

 因为如果不满足,显然这i-j-1个位置没办法按最小的递增顺序放满。肯定会不是严格递增的。

 因此直接输出无解



 接下来要考虑绝对值最小这个约束.来代替各个问号。

 如果a[i]>=0 且a[j]>=0

 那么按a[i]+1,a[i]+2..顺序递增代替问号就好

 a[i]<=0且a[j]<=0,就a[j]-(i-j-1),a[j]-(i-j-1)+1....顺序递增

 a[i]<0且a[j]>0的话,就从0的两边交替选数字就好,取出0两边交替的数字的最小值\(-\frac{(i-j-1)}{2}\),然后递增代替问号就可以。

 当然要大于a[i]且小于等于a[j]-(i-j-1)

15e8-(-15e8)会爆long long.....

【代码】

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int N = 2e5;
  4. const int INF = 105e7;
  5. int n,k,a[N+10],b[N+10];
  6. char s[20];
  7. int main(){
  8. #ifdef LOCAL_DEFINE
  9. freopen("rush_in.txt", "r", stdin);
  10. #endif
  11. ios::sync_with_stdio(0),cin.tie(0);
  12. cin >> n >> k;
  13. for (int i = 1;i <= n;i++) {
  14. cin >> s;
  15. if (s[0]=='?'){
  16. a[i] = INF;
  17. }else {
  18. a[i] = atoi(s);
  19. }
  20. }
  21. for (int i = n+1;i <= n+k;i++) a[i] = INF+1;
  22. for (int i = 1;i <= k;i++){
  23. int tot = 0,prev = -INF;
  24. for (int j = i;j <= n+k;j+=k)
  25. if (a[j]==INF){
  26. tot++;
  27. }else{
  28. if (a[j]- prev-1<tot){
  29. return cout<<"Incorrect sequence"<<endl,0;
  30. }
  31. int s;
  32. if (prev>=0)
  33. s = prev+1;
  34. else if (a[j]<=0) s = a[j]-tot;
  35. else{
  36. s = max(prev+1,min(-tot/2,a[j]-tot));
  37. }
  38. for (int kk = tot;kk >= 1;kk--){
  39. a[j-k*kk] = s++;
  40. }
  41. prev = a[j];
  42. tot=0;
  43. }
  44. }
  45. for (int i = 1;i <= n;i++)
  46. cout <<a[i]<<' ';
  47. return 0;
  48. }

【Henu ACM Round#15 F】Arthur and Questions的更多相关文章

  1. 【Henu ACM Round#18 F】Arthur and Walls

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 考虑,为什么一个连通块里面的空格没有变成一个矩形? 如果不是形成矩形的话. 肯定是因为某个2x2的单张方形里面. 只有一个角是墙.其 ...

  2. 【Henu ACM Round#20 F】 Arthur and Brackets

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 所给的li,ri是左括号从左到右的顺序给的. (且注意长度是2*n 现在我们先把第一个左括号放在第1个位置. 然后考虑第二个位置. ...

  3. 【Henu ACM Round#16 F】Om Nom and Necklace

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] KMP算法可以把"i前缀"pre[i] 分成ssssst的形式 这里t是s的前缀. 然后s其实就是pre[i]中 ...

  4. 【Henu ACM Round#17 F】Upgrading Array

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 如果我们对某一个位置i操作两次的话. 显然结果就和操作一次一样. 因为第一次操作过后1..i这些数字就变成是互质的了. gcd为1. ...

  5. 【Henu ACM Round#15 D】Ilya and Escalator

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 概率DP; 设f[i][j]表示前i个单位时间,j个人进入房间的概率是多少 然后想一下和i-1秒的时候要怎么转移就可以了. i-1秒 ...

  6. 【Henu ACM Round#15 E】 A and B and Lecture Rooms

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 最近公共祖先. (树上倍增 一开始统计出每个子树的节点个数_size[i] 如果x和y相同. 那么直接输出n. 否则求出x和y的最近 ...

  7. 【Henu ACM Round #13 F】Fibonacci-ish

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 枚举序列的头两个数字是什么 O(N^2) 然后头两个数字确定之后. f[3],f[4]..就确定了 只需查看f[3],f[4]..是 ...

  8. 【Henu ACM Round#19 F】Dispute

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 这一题和这一题很像 (链接 ) 会发现如果a[i]!=b[i]那么就按下i就好了. 然后改变和他相邻的点. 此后a[i]再也不可能和 ...

  9. 【Henu ACM Round#15 C】 A and B and Team Training

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 枚举第一种方法. 剩下的全都个第二种方法. 看看能组成多少个队伍就可以了. [代码] #include <bits/stdc+ ...

随机推荐

  1. shell-3.bash的基本功能:通配符和其他特殊字符

    1. 2.

  2. 数据库应用_innobackupex备份与恢复

    1.Percona软件介绍; 2.innobackupex的备份与恢复 一, Percona软件 在学习percona软件之前,我们看一下物理备份和mysqldump备份有哪些缺陷. 物理备份的缺点: ...

  3. MySQL常用技能篇

    写在之前的话: 之前一直在用MSSERVER,刚用MySQL时有很多的不适应.就此小结一下工作中遇到的问题和场景(用的不是很深入,供初学者参考),文中出现的局限性欢迎指出 MySQL有客户端式(SQL ...

  4. HDU-5025 Saving Tang Monk 广度搜索 状态压缩

    题目链接:https://cn.vjudge.net/problem/HDU-5025 题意 救唐僧,路上有m(<=9)把钥匙,最多5条蛇和一个唐僧. 目标是前往唐僧的地方,用全部钥匙打开全部的 ...

  5. BZOJ 2342 [Shoi2011]双倍回文(manacher+堆+set)

    题意 N<=500000 题解 维护一个set可以用堆来解决. #include<iostream> #include<cstring> #include<cstd ...

  6. 浅说套接字socket做个小小的监控

    socket 的简介 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. Socket的英文原义是"孔"或"插座".作为 ...

  7. Jtester使用

    1.在Jtester中使用DataMap 为什么要使用DataMap? 早先的jTester中提供了dbFit方式来准备和验证数据库数据,应该来说,这个工具解决了很多问题.实际使用过程中,开发同学反映 ...

  8. Vue style里面使用@import引入外部css, 作用域是全局的解决方案

    问题描述 使用@import引入外部css,作用域却是全局的 <template> </template> <script> export default { na ...

  9. poj1284 && caioj 1159 欧拉函数1:原根

    这道题不知道这个定理很难做出来. 除非暴力找规律. 我原本找的时候出了问题 暴力找出的从13及以上的答案就有问题了 因为13的12次方会溢出 那么该怎么做? 快速幂派上用场. 把前几个素数的答案找出来 ...

  10. 洛谷 P1572 计算分数

    P1572 计算分数 题目描述 Csh被老妈关在家里做分数计算题,但显然他不愿意坐这么多复杂的计算.况且在家门口还有Xxq在等着他去一起看电影.为了尽快地能去陪Xxq看电影,他把剩下的计算题交给了你, ...