题目链接

problem

构造一个长度为\(2n\)的数列。满足:

1.[1,n]中每个数字恰好出现两次。

2.将所有相同数字之间相隔的数字个数排序后,得到公差为1的等差数列。

保证n为奇数。

solution

挺妙的一道题(来自蒟蒻的呻吟~)

发现n是奇数。那么将序列分为四部分A,B,C,D。长度分别为k,k+1,k,k+1。让A与C互为相反串,B与D互为相反串。

这样发现,A与C所造成的贡献分别是:k+1,k+3,k+5···。B与D所造成的贡献分别是:k,k+2,k+4,k+6···。合起来恰好是一个等差数列。

一开始自己误加了一个条件(首项必须唯一/nc)

code

/*
* @Author: wxyww
* @Date: 2019-12-17 18:58:18
* @Last Modified time: 2019-12-17 19:08:10
*/
#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<queue>
#include<vector>
#include<ctime>
using namespace std;
typedef long long ll; ll read() {
ll x = 0,f = 1;char c = getchar();
while(c < '0' || c > '9') {
if(c == '-') f = -1; c = getchar();
}
while(c >= '0' && c <= '9') {
x = x * 10 + c - '0'; c = getchar();
}
return x * f;
} int main() {
int n = read();
for(int i = 1;i <= n;++i) printf("%d ",i);
for(int i = n / 2;i >= 1;--i) printf("%d ",i);
for(int i = n;i > n / 2;--i) printf("%d ",i); return 0;
}

luogu5823 课表的排列的更多相关文章

  1. 从爬取湖北某高校hub教务系统课表浅谈Java信息抓取的实现 —— import java.*;

    原创文章与源码,如果转载请注明来源. 开发环境:Myeclipse,依赖包:apache-httpclient . Jsoup.base64 一.概述 整个系统用Java开发.我们现在要做的是类似于超 ...

  2. 学习sql中的排列组合,在园子里搜着看于是。。。

    学习sql中的排列组合,在园子里搜着看,看到篇文章,于是自己(新手)用了最最原始的sql去写出来: --需求----B, C, F, M and S住在一座房子的不同楼层.--B 不住顶层.C 不住底 ...

  3. [LeetCode] Arranging Coins 排列硬币

    You have a total of n coins that you want to form in a staircase shape, where every k-th row must ha ...

  4. [LeetCode] Next Permutation 下一个排列

    Implement next permutation, which rearranges numbers into the lexicographically next greater permuta ...

  5. js学习篇--数组按升序降序排列

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. SDOI 2016 排列计数

    题目大意:一个数列A,n个元素,其中m个元素不动,其他元素均不在相应位置,问有多少种排列 保证m个元素不动,组合数学直接计算,剩余元素错位排列一下即可 #include<bits/stdc++. ...

  7. 排列组合算法的javascript实现

    命题:从成员数为N的集合S中,选出M个元素,分别求其排列与组合结果集,即 A(N, M)与C(N, M) js解法: function queue(arr, size){ if(size > a ...

  8. 剑指Offer面试题:26.字符串的排列

    一.题目:字符串的排列 题目:输入一个字符串,打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a.b.c所能排列出来的所有字符串abc.acb.bac.bca.cab和cba. 二 ...

  9. .NET平台开源项目速览(11)KwCombinatorics排列组合使用案例(1)

    今年上半年,我在KwCombinatorics系列文章中,重点介绍了KwCombinatorics组件的使用情况,其实这个组件我5年前就开始用了,非常方便,麻雀虽小五脏俱全.所以一直非常喜欢,才写了几 ...

随机推荐

  1. css position:sticky的尝试

    前言 sticky这种设计效果是经常出现的,比如陶宝右侧的工具栏,当我们向下滚动到它的位置时,它就会黏住顶部跟随滚动,类似position: fixed的效果,只不过它的触发条件是当我们滚动到所在位置 ...

  2. Dynamics 365 Customer Engagement V9.X新引入的自动编号属性介绍

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...

  3. AlertDialog创建对话框的测试

    AlertDialog的功能是非常强大的,它可以创建各种对话框,它的结构分为:图标区.标题区.内容区.按钮区共四个区域.以这样的思路区创建AlertDialog是非常简单的. 创建AlertDialo ...

  4. Linux tree

    tree命令,是大小写敏感的.常用的是:1.tree -C 颜色显示 2.tree -f 显示文件全路径ls -R也可以显示树结构,但没上面 清晰 3.tree -L n n 是数字,表示显示几层 4 ...

  5. 《软件安装》VMware 安装 centos8

    上期问题回顾 搞技术的同学应该都听过docker,那么请问docker和虚拟机有什么区别呢? 传统的虚拟机架构是:物理机 -> 宿主机操作系统 -> Hypervisor支持 -> ...

  6. 【oracle】ORA-06550 字符串长度限制在范围

    number(2)输入了100 就会导致异常

  7. redis(二)集群 redis-cluster & redis主从同步

    参考文档: http://geek.csdn.net/news/detail/200023 redis主从复制:https://blog.csdn.net/imxiangzi/article/deta ...

  8. ReactNative: 使用尺寸类Dimensions获取屏幕尺寸

    一.简介 在前面创建使用组件时,虽然使用的都是伸缩盒子布局,但是很少使用宽高来进行绝对定位.在iOS中可以通过UIScreen控件获取当前屏幕的宽高,同样地,在RN中提供了一个尺寸组件Dimensio ...

  9. 转载-Archunit的使用

    Archunit的使用 注:开发的编辑器: Intellij Idea,JDK版本是JDK8     Archunit是什么,官网的英文介绍很好,建议阅读原文,"ArchUnit is a  ...

  10. 关于@RequestBody 有的时候能接收有的时候接收不了的情况,@RequestParam什么时候使用

    最近有点疑惑的是,在公司用@RequestBody  可以解析前端发送的json串,但是自己在做项目的时候老是会接受不到,报415错误,于是寻思了一下,看了看请求体有何不同,发现确实不同,  这个是表 ...