首页 > 其他分享 >【每日一题】Problem 359B. Permutation

【每日一题】Problem 359B. Permutation

时间:2023-06-24 15:45:11浏览次数:56  
标签:std cout int 359B Permutation Problem 2i 2k

原题

解决思路

虽然题解思路里写着 \(dp\),但是还是用最简单的 \(math\) 方法写了
找规律题:

  1. 如果结果为 \(0\),只需要每个 \(a_{2i-1}-a_{i}\) 同向即可,即都为整数或负数
  2. 如果结果为 \(2k\),则只需要任意一个 \(|a_{2i-1}-a_{i}|\) 的值为 \(k\),且与其他的 \(a_{2i-1}-a_{i}\) 方向不同,那么一正一负中和后,相差的结果正好是 \(2k\)。取 \(a_{1} = 1\),\(a_{2} = 1 + k\) 根据题意 \(2k\le n\),因此此方法可行
#include <bits/stdc++.h>

int main() {
    int n, k; std::cin >> n >> k;
    int a, b; a = b = 0;
    if (k > 0) {
        a = 1, b = 1 + k;
        std::cout << a << " " << b << " ";
    }
    for (int i = 2 * n; i >= 1; --i) {
        if (i == a || i == b) continue;
        std::cout << i << " ";
    }
    std::cout << std::endl;
}

标签:std,cout,int,359B,Permutation,Problem,2i,2k
From: https://www.cnblogs.com/HelloEricy/p/17501185.html

相关文章

  • 【每日一题】Problem 253B. Physics Practical
    原题解决思路定义\(dp[i][j]\)为对\(i\)元素做出选择后,要删除的最少元素个数对于\(i\),有两种情况,选或不选选:则找到\(y(y>2x)\)的个数,可以通过排序二分实现不选:则在\(i-1\)的最少删除个数的选择下\(+1\)#include<bits/stdc++.h>intbinarySearch(std::vect......
  • 【每日一题】Problem 234C. Weather
    原题解决思路还是先从二维数组开始,定义一个二维数组\(dp\),对于\(dp[i,j]\),\(i\)表示第\(i\)个元素,\(j\)表示当前元素的状态(正数或负数)\(dp[i,0]\)表示第\(i\)个元素为负数时,前\(i\)个元素中需要改动的元素数;\(dp[i,1]\)表示第\(i\)个元素为正数时,前\(i\)个......
  • 每日一题力扣 1262 https://leetcode.cn/problems/greatest-sum-divisible-by-three/
    、 题解这道题目核心就算是要知道如果x%3=2的话,应该要去拿%3=1的数字,这样子才能满足%3=0贪心sum不够%3的时候,就减去余数为1的或者余数为2的需要注意两个余数为1会变成余数为2的,所以可能减去2个余数为1核心代码如下publicintmaxSumDivThreeOther(int[]nums){​  ......
  • [ABC299G]MinimumPermutation
    [ABC299G]MinimumPermutation考虑一个必要的性质:如果现在有一个数\(x_1\),它后面有一个数\(y<x_1\),且\(x_1\)又在\(y\)后面出现了若干次(\(x_2,x_3,\dots,x_k\),我们直接考虑最后一个\(x_k\)),那么\(x1\)一定不是答案。(显然前面的\(x_1\)可以不选,然后选择\(y,x_2\simx_......
  • Yet Another Minimization Problem(CF1637D)
    \(\text{Des}\)Youaregiventwoarrays$a$and$b$,bothoflength$n$.Youcanperformthefollowingoperationanynumberoftimes(possiblyzero):selectanindex$i$($1\leqi\leqn$)andswap$a_i$and$b_i$.Let'sdefi......
  • ARC114F Permutation Division
    题意给定一个\(1\simN\)的排列,Alice把它划分成\(k\)段,Bob把这\(k\)段任意排列。Alice想让字典序最小,Bob想让字典序最大。请问最后的排列。数据范围:\(1\lek\leN\le2\times10^5\)。题解首先Bob的排序只取决于每个段第一个数的大小。字典序不会变小,所以考虑......
  • 登陆服务器异常ABRT has detected 1 problem(s).
    1、登陆服务器后,出现如下所示错误:ABRThasdetected1problem(s).Formoreinforun:abrt-clilist--since16862382592、执行提示命令[root@hadoop1~]#abrt-clilist--since16862382593、启用自动报告功能[root@hadoop1~]#abrt-auto-reportingenabled4、重新链接测试,没......
  • HDU5293 Tree chain problem
    HDU5293TreechainproblemSolution1考虑dp。把链的信息挂在深度最浅的节点上,自下而上更新答案。记\(f_u\)表示\(u\)子树内的最大权值和,\(S\)表示挂在\(u\)上的某条链,\(son(x)\)表示点\(x\)的儿子集合,\(T_u\)表示子树\(u\)的点集。则\(f_u\)的初始值为:\[f_......
  • 【每日一题】Problem 180C. Letter
    原题解决思路每一个字符以前一个字符为基准,来判断自己是upper还是lower,从而找到最少的解最开始的解决思路是,用回溯的方式来解决,即使划分区块该方法也十分耗时,因为每个字符都有两种情况,因此时间复杂度为\(O(2^n)\)将\(1\)的方式修改下,分别用\(num[i][0],num[i][1]\)来......
  • 【每日一题】Problem 174B. File List
    原题解决思路纯模拟,比较文件名长度是否合规,文件格式+下一个文件名长度是否合规误区文件名的长度要和文件格式+下一个文件名的长度分开判断更新左端点和每次迭代开始先判断的方式解决该问题最后一个'.'后的文件格式需要特殊处理在循环结束后与'.'不存在的情况共同......