CF1454A Special Permutation 题解】的更多相关文章

Content 给定一个整数 \(n\),请构造出一个长度为 \(n\) 的排列 \(\{a_i\}_{i=1}^n\),使得对于每个 \(a_i\),都有 \(a_i\neq i\). 我们称一个长度为 \(n\) 的数列为一个排列,当且仅当所有 \(1\sim n\) 的整数都出现且仅出现了一次.比如说 \([2,3,1,5,4]\) 就是一个长度为 \(5\) 的排列,而 \([1,2,2]\) 和 \([1,3,4]\) 都不是一个排列. 数据范围:\(1\leqslant t\leqs…
原题链接 题意简介 给定一个长度为 n 的排列 {1,2,3,...,n} .现有两种操作: 对某个区间 [l,r] 求和 将排列往后推 x 次 (按字典序) 其中 \(n,q \leq 2\times10^5 , x\leq 10^5\) . 思路分析 乍一看毫无思路. 因为排列变换是毫无疑问的暴力,变换后怎么维护区间和是一个非常玄妙的问题.好像没有什么特殊的维护技巧. 仔细观察数据范围:\(x\leq 10^5 , q\leq 2\times 10^5\) 这意味着 \(\sum x_i \…
题目链接 题目大意 给你一个数字n和长为n-1个字符串 字符串包含'<','>' 若s[i]='<' 则代表a[i]<a[i+1] 若s[i]='>' 则代表a[i]>a[i+1] 你要构造一个长度为n的全排列,使其满足条件 求方案数mod 1e9+7 题目思路 这个问题主要就是不知道如何保证自己构造的数组是一个全排列 又是一个神仙dp, 设\(dp[i][j]\)代表[1,i]为全排列,且第i个元素为j 那么该怎么转移. 若为'<' \(dp[i][j]=\su…
Content 给定一个长度为 \(n-1\) 的序列 \(q\),问你是否能找到一个 \(1\sim n\) 的排列 \(p\),使得 \(\forall i\in[1,n)\),\(q_i=p_{i+1}-p_i\). 数据范围:\(2\leqslant n\leqslant 2\times 10^5\),\(-n<q_i<n\). Solution 首先我们不难知道,设 \(S_i=\sum\limits_{j=1}^i q_j\),那我们不难知道,\(S_i\) 越小,第 \(i+1\…
CF640 div4 草 迟到半个月的补题 真正的懒狗 再懒就无了 D. Alice, Bob and Candies 题意:n个数字,奇数时间从左侧删数字,偶数时间从右侧删数字,每次删的数字之和必须大于上次的.问最多删多少次和左边删除数字和与右边删除数字和. 题解:很简单的模拟题,初始情况特判即可,不知道当时为什么没做出来 #include<iostream> using namespace std; int can[1005]; int main() { int t; cin >&g…
比赛链接:https://codeforces.com/contest/1352 A - Sum of Round Numbers 题意 将一个十进制数的每一个非零位分离出来. 代码 #include <bits/stdc++.h> using namespace std; void solve() { string s; cin >> s; int n = s.size(); vector<string> ans; for (int i = n - 1; i >…
http://poj.org/problem?id=1426 Description Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a c…
题意: 给定n个数,从中选取m个数,使得\(\sum | n\).本题使用Special Judge. 题解: 既然使用special judge,我们可以直接构造答案. 首先构造在mod N剩余系下的前缀和. \[sum_i = (a_i + sum_{i-1}) mod n\] 剩余系N的完系中显然共有N-1个元素,我们有N个前缀和. 根据鸽巢原理,一定有\(sum_j = sum_i\) 所以这样构造是可行的. TRICK 具体实现的时候用了一个技巧: 从前往后扫描sum数组,记录一个po…
Cover Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 966    Accepted Submission(s): 320 Special Judge Problem Description You have an n∗n matrix.Every grid has a color.Now there are two types…
Hash Table基础 哈希表(Hash Table)是常用的数据结构,其运用哈希函数(hash function)实现映射,内部使用开放定址.拉链法等方式解决哈希冲突,使得读写时间复杂度平均为O(1). HashMap(std::unordered_map).HashSet(std::unordered_set)的原理与Hash Table一样,它们的用途广泛.用法灵活,接下来侧重于介绍它们的应用. 相关LeetCode题: 706. Design HashMap  题解  705. Des…