如何在中国建设通官网预订桂林漓江竹筏旅行?

摘要:中国建设通官方网站,桂林漓江竹筏,用dw做一个简单的网页,怎么样开网站给定一个长度为 n 的数列 a1,a2,…,an,每次可以选择一个区间 [l,r],使下标在这个区间内的数都加
中国建设通官方网站,桂林漓江竹筏,用dw做一个简单的网页,怎么样开网站给定一个长度为 n 的数列 a1,a2,…,an#xff0c;每次可以选择一个区间 [l,r]#xff0c;使下标在这个区间内的数都加一或者都减一。 求至少需要多少次操作才能使数列中的所有数都一样#xff0c;并求出在保证最少次数的前提下#xff0c;最终得到的数列可能有多少种。 输入… 给定一个长度为 n 的数列 a1,a2,…,an每次可以选择一个区间 [l,r]使下标在这个区间内的数都加一或者都减一。 求至少需要多少次操作才能使数列中的所有数都一样并求出在保证最少次数的前提下最终得到的数列可能有多少种。 输入格式 第一行输入正整数 n。 接下来 n行每行输入一个整数第 i1 行的整数代表 ai。 输出格式 第一行输出最少操作次数。 第二行输出最终能得到多少种结果。 数据范围 0n≤105 0≤ai2147483648 输入样例 4 1 1 2 2输出样例 1 2   差分解决一段区域同时增加或减少的问题 给区间【LR】上都加上一个常数c则b[L] c , b[R 1] -c 求出a的差分序列b其中b1 a1,b(i) a(i) - a(i - 1) (2 i n)。令b(n 1) 0题目对序列a的操作相当于每次可以选出b1,b2…b(n 1)中的任意两个数一个加1另外一个减一。目标是把b2,b3,…bn变为全0。最终得到的数列a就是由 n 个 b1 构成的 任选两个数的方法可分为四类 1、2 i , j n优先 2、i 1, 2 j n 3、2 i n , j n 1 4、i 1, j n 1没有意义 设b2,b3....bn中正数总和为p负数总和的绝对值为q。首先以正负数匹配的方式尽量执行1类操作可执行min(p,q)次。剩余|p - q|个为匹对每个可以选与b1或b(n 1)匹配即执行2 或 3 类操作共需|p - q|次 综上所诉最少操作次数为min(p,q) |p - q|。根据|p - q|次第2、3类操作的选择情况能产生|p - q| 1中不同的b1的值即最终得到的序列a可能有|p - q| 1 种   #include iostream #include cstdio #include cstring #include algorithm #include vector #include cmath #include queue using namespace std;constexpr int N1e57; typedef long long ll; ll n,a[N],b[N]; int main(){scanf(%lld,n);for(int i1;in;i){scanf(%lld,a[i]);b[i]a[i]-a[i-1];}ll zheng0, fu0;for(int i2;in;i) {if (b[i] 0) {zheng b[i];}else if (b[i] 0) {fu - b[i];}}ll ans1 max(zheng ,fu);ll ans2 abs(zheng-fu)1;printf(%lld\n, ans1);printf(%lld\n, ans2);return 0; }