Codeforces 1168A Increasing by Modulo】的更多相关文章

题目链接:http://codeforces.com/problemset/problem/1168/A 题意:给一个数组,数组中元素范围为0~n,每次你可以选择若干元素进行(ai+1)%m的操作,问使数组呈非递增的最小操作次数. 思路:因为每次都可以选若干个元素,用贪心思想,假设要操作x次,第一个元素加上x若能超过m,则对m取模最小值为0,令其等于0就好了,后面每个元素加上x后,对m取模后只要不比前面小就好了,则依次判断数组的每个元素能否满足,利用二分搜索来寻找 操作数 x,x即为答案. AC…
链接:https://codeforces.com/contest/1169/problem/C 题意: Toad Zitz has an array of integers, each integer is between 00 and m−1m−1 inclusive. The integers are a1,a2,…,ana1,a2,…,an. In one operation Zitz can choose an integer kk and kk indices i1,i2,…,iki…
题目链接 \(Description\) 给定\(n\)个数.你可以选择一段区间将它们都加上或减去任意一个数.求最终序列中最多能有多少个数等于给定的\(C\). \(n\leq5\times10^5\). \(Solution\) 先记一个表示\(C\)的个数的前缀和\(sum_i\). 选择修改的区间\([l,r]\)一定满足\(A_l=A_r\)且都是由\(A_l\)变成\(C\).所以我们枚举右端点,对每种权值单独考虑. 那么\(A_r\)要么是由前面某个等于\(A_r\)的数转移过来,要…
给定n个模m的数字 可以选择k个数字进行操作,操作时对该数字进行+1模m 求解最少多少次操作可以使得该数列变成单调不下降序列 实际上就是二分操作数目,其中操作数目肯定不会超过m 然后我们将左右边界变成0和m 二分操作数 以下几种情况可以进行操作 当前数字小于等于上一次保存的数字并且加上操作数>上一次的数字,也就说明该数可以进行操作,但是为了保证贪心,我们可以让该数字变化成上一次操作的数字,其实就是不改变上一次保存的数字,直接continue 如果当前数字大于上次保存的数字,并且+x-m之后可以>…
关键是check.要注意到其实有了mid以后每个位置都是独立的,它能从哪走到哪是固定了的,只要从左到右尽量贪心压着最小值即可. #include <cstdio> const int maxn = 3e5 + 5; int n, m, a[maxn]; bool ok(int mid) { for (int i = 1, pre = 0; i <= n; i++) { int l = a[i], r = a[i] + mid; if ((l <= pre && pr…
思路: 首先得做个转化,如果某个解法最终分别对a[i](i = 1, 2, ..., n)做了b[i](i = 1, 2, ..., n)次加1再取余的运算,那么可以等价地构造出x次(x = max(b[i]))题目定义的操作,这样就可以直接对x二分了. 实现: #include <bits/stdc++.h> using namespace std; ; int a[N], n, m; bool check(int x) { ; ; i <= n; i++) { if (a[i] +…
A - Circle Metro 模拟几百步就可以了. B - Pairs 爆搜一下,时间复杂度大概是 $O(4 * n)$ Code: 56306723 C - Increasing by Modulo 二分答案,然后验证一下就好了,第一个数越小越好,之后的数都要求和前一个相等或者大一点.复杂度 $n * log(n)$ D - Good Triple 对于每一个 $i$,需要计算出最小的 $x$,使得 $s[i-x] = s[x] = s[i + x]$,对于 $i$ 而言,如果区间左端点在…
觉得有必要在NOI之前开一篇学习内容记录. 至于为什么要取这个标题呢?也许并没有什么特殊的借口吧. 5.23 在LOJ上搬了三道原题给大家考了考,然后大家都在考试就我一个人在划水. SSerxhs 和 Serval 的退役纪念赛 A.幼儿园唱歌题 给一个串\(S\),\(q\)次询问满足是串\(S[l_1,r_1]\)的前缀且是串\(S[l_2,r_2]\)的后缀的最长回文串长度.\(|S|,q\le2\times10^5\) 把串\(S\)反过来接在后面建回文树,然后就是求两个点的公共祖先中深…
All Possible Increasing Subsequences Time Limit:3000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Appoint description:  Description An increasing subsequence from a sequence A1, A2 ... An is defined by Ai1, Ai2 ... Aik, where the follow…
B. Modulo Sum Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/577/problem/B Description You are given a sequence of numbers a1, a2, ..., an, and a number m. Check if it is possible to choose a non-empty subsequence aij such…