传送门

题意

给你一个长度为n的数组,让你进行三次操作,选择一个l到r的区间,这段长度为r - l,然后对于这段区间内的每一个数字,你都可以加上或者减去这段长度的倍数,要求三次操作结束之后,数组中每个元素都为0,求出这三次操作

分析

这道题首先我们可以把这个数组中的每一个元素都变成n的倍数,然后一起消除就可以了

然后我们选择n - 1这个点,把前n - 1个数字都加上(n - 1)* a[i],这样每一位数字都变成了n * a[i],也就是a[i] 的n倍,最后的a[n]因为长度为1,所以也加上(n - 1)* a[n],最后整体减去n * a[i]即可

注意两点

  1. n == 1的时候需要特判
  2. n * a[I]可能会爆int,需要用1ll * 来处理

代码

#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <queue>
#include <cstring>
#define debug(x) cout<<#x<<":"<<x<<endl;
#define _CRT_SECURE_NO_WARNINGS
#pragma GCC optimize("Ofast","unroll-loops","omit-frame-pointer","inline")
#pragma GCC option("arch=native","tune=native","no-zero-upper")
#pragma GCC target("avx2")
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> PII;
const int INF = 0x3f3f3f3f;
const int N = 1e5 + 10;
int a[N];
int n;void ans(){printf("%d %d\n",1,n - 1);for(int i = 1;i < n;i++)printf("%lld ",(1ll * n - 1) * a[i]);puts("");printf("%d %d\n",n,n);printf("%lld\n",1ll * (n - 1) * a[n]);printf("%d %d\n",1,n);for(int i = 1;i <= n;i++)printf("%lld ",-(1ll * n * a[i]));puts("");
}int main(){scanf("%d",&n);for(int i = 1;i <= n;i++) scanf("%d",&a[i]);if(n != 1) ans();else{puts("1 1");cout << -a[1] << endl;puts("1 1");puts("0");puts("1 1");puts("0");}return 0;
}

C. Multiples of Length 思维构造相关推荐

  1. Codeforces Round #701 (Div. 2) D. Multiples and Power Differences 思维构造

    传送门 题意: 给定一个矩阵aaa,让你构造一个矩阵bbb,要求矩阵bbb的每个元素是aaa对应位置元素的倍数,且矩阵bbb的每两个相邻元素相差为k4(k>=1)k^4(k>=1)k4(k ...

  2. 【CodeForces - 798D】Mike and distribution (思维构造,贪心,黑科技)

    题干: Mike has always been thinking about the harshness of social inequality. He's so obsessed with it ...

  3. 中石油训练赛 - Edit Distance(思维+构造)

    题目描述 A binary string is a non-empty sequence of 0's and 1's, e.g., 010110, 1, 11101, etc. The edit d ...

  4. Binary String Reconstruction CodeForces - 1352F(思维+构造)

    For some binary string s (i.e. each character si is either '0' or '1'), all pairs of consecutive (ad ...

  5. 【CodeForces - 483C】Diverse Permutation(思维构造)

    题干: Permutation p is an ordered set of integers p1,   p2,   ...,   pn, consisting of ndistinct posit ...

  6. 【CodeForces - 892C 】Pride (数学,思维构造,gcd)

    题干: You have an array a with length n, you can perform operations. Each operation is like this: choo ...

  7. CodeForces - 1504C Balance the Bits(思维+构造)

    题目链接:https://vjudge.net/problem/CodeForces-1504C 题目大意:给出一个长度为 nnn 的 010101 串,现在要求构造出两个长度为 nnn 的合法括号序 ...

  8. HDU - 5573 Binary Tree(思维+构造+二进制)

    题目链接:点击查看 题目大意:给出一棵无限大的完全二叉树,每次给出一个 n 和一个 k ,要求从点 1 出发一直向下,找到一条长度为 k 的路径,对于路径上的点可以加上其编号,也可以减去其编号,需要构 ...

  9. CodeForces - 1291D Irreducible Anagrams(思维+构造)

    题目链接:点击查看 题目大意:首先规定两个字符串 s 和 t 为 Anagrams ,当且仅当字符串 t 可以通过字母重新排列后得到 s ,也就是每个字符出现的次数相同,但位置不做要求,紧接着规定另一 ...

  10. CodeForces - 125C Hobbits' Party(思维+构造)

    题目链接:点击查看 题目大意:有一个派对,现在有 n 个人参加,题目要求我们构造出一种参加方式,满足条件且可以维持的天数最大: 任意两天中至少有一个相同的人参加 任意三天中不能有一个相同的人参加 输出 ...

最新文章

  1. 西湖大学蓝振忠:预训练语言模型的前沿发展趋势
  2. 成功解决SyntaxError: (unicode error) ‘unicodeescape‘ codec can‘t decode bytes in position 0-1: malformed
  3. 单因素方差分析_基于R语言开展方差分析(一)——单因素方差分析
  4. 2011 MVP大奖礼品包,那是相当的给力啊!!
  5. WPF的ComboBox 数据模板自定义
  6. OkHttp3详细使用教程(2)
  7. 宁德时代是前8个月全球最大电动汽车电池供应商
  8. Cisco协议学习笔记(VTP)
  9. 使用lombok注解,在代码编写过程中可以调用到get/set方法,但在编译的时候报错找不到get/set方法
  10. 传统蒙文字体_蒙文字体下载
  11. linux ssh 中文变问号,乱码 解决
  12. 开发一套企业管理软件系统要花费多少钱?
  13. java六角括号怎么打_六角括号怎么打出来 六角括号输入方法
  14. (第二章)HTML基本标记
  15. 越南旅游攻略??转载
  16. 怎么用计算机把浓度转换成PH,ph浓度换算(ph怎么换算OH浓度)
  17. 蓝桥杯复数运算python
  18. 实体识别BERT-MRC论文阅读笔记
  19. 她 | papi酱的中场“战事”
  20. 上海互联网公司和生活成本

热门文章

  1. shell脚本使用两个横杠接收外部参数
  2. android压力测试命令monkey详解,android压力测试命令monkey详解(示例代码)
  3. 邮箱登录名身份证号码等验证
  4. QML快捷键(Shortcut、Keys)
  5. python基础坑点
  6. 阴阳师服务器维护2月20,阴阳师2月20日官方更新公告 阴阳师2月20日更新内容汇总...
  7. [CodeForces] 274E Mirror Room
  8. 游戏服务器级别分类及对应服务器架构
  9. c++ 聚合/POD/平凡/标准布局 介绍
  10. 如何用基于保利威视云平台来做网络年会直播活动