CF 482A(Diverse Permutation-相邻距离不同数为k的1~n全排列构造)

本文介绍了一个算法问题,目标是在给定长度n和差异元素数量k的情况下找到一个整数排列p,使得相邻元素之间的绝对差值恰好包含k个不同的数值。

A. Diverse Permutation
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Permutation p is an ordered set of integers p1,   p2,   ...,   pn, consisting of n distinct positive integers not larger than n. We'll denote asn the length of permutation p1,   p2,   ...,   pn.

Your task is to find such permutation p of length n, that the group of numbers |p1 - p2|, |p2 - p3|, ..., |pn - 1 - pn| has exactly k distinct elements.

Input

The single line of the input contains two space-separated positive integers nk (1 ≤ k < n ≤ 105).

Output

Print n integers forming the permutation. If there are multiple answers, print any of them.

Sample test(s)
input
3 2
output
1 3 2
input
3 1
output
1 2 3
input
5 2
output
1 3 2 4 5
Note

By |x| we denote the absolute value of number x.


1 10 2 9 3 8 |7 6 5 4 3 2

不同的。。。全为1的



#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<functional>
#include<iostream>
#include<cmath>
#include<cctype>
#include<ctime>
using namespace std;
#define For(i,n) for(int i=1;i<=n;i++)
#define Fork(i,k,n) for(int i=k;i<=n;i++)
#define Rep(i,n) for(int i=0;i<n;i++)
#define ForD(i,n) for(int i=n;i;i--)
#define RepD(i,n) for(int i=n;i>=0;i--)
#define Forp(x) for(int p=pre[x];p;p=next[p])
#define Forpiter(x) for(int &p=iter[x];p;p=next[p])  
#define Lson (x<<1)
#define Rson ((x<<1)+1)
#define MEM(a) memset(a,0,sizeof(a));
#define MEMI(a) memset(a,127,sizeof(a));
#define MEMi(a) memset(a,128,sizeof(a));
#define INF (2139062143)
#define F (100000007)
#define MAXN (100000+10)
#define MAXK (100000+10)
long long mul(long long a,long long b){return (a*b)%F;}
long long add(long long a,long long b){return (a+b)%F;}
long long sub(long long a,long long b){return (a-b+(a-b)/F*F+F)%F;}
typedef long long ll;
int n,k;
int main()
{
//	freopen("CF482A.in","r",stdin);
//	freopen(".out","w",stdout);
	
	cin>>n>>k;k--;
	int l=1,r=n,b=1;
	while(l<=r)
	{
		
		if (b) printf("%d",l++);
		else printf("%d",r--);
		if (k) b^=1,k--; 
		
		if (l<=r) putchar(' ');
	}
	cout<<endl;
	return 0;
}




仅从给定的参考内容中无法获取用于彩色织物缺陷检测的基于多样化嵌入的复合重建编码器 - 解码器的代码。不过可以通过以下几种途径查找该代码: ### 学术论文的附属资源 许多研究人员会在发表学术论文时,将相关代码开源到代码托管平台,如GitHub。可以通过学术搜索引擎,如IEEE Xplore、ACM Digital Library、Google Scholar等,搜索“A diverse embedding-based composite reconstruction encoder–decoder for color fabric defect detection”这篇论文,通常论文的结尾部分会有代码的链接。 ### 代码托管平台搜索 直接在GitHub、GitLab等代码托管平台上使用关键词“A diverse embedding-based composite reconstruction encoder–decoder for color fabric defect detection”进行搜索,可能会找到相关的代码仓库。 ### 联系作者 若在上述途径都未找到代码,可以通过论文中作者提供的邮箱等联系方式,礼貌地请求作者分享代码。 ### 示例代码查找思路的Python代码 以下是一个简单的Python代码示例,用于在GitHub上搜索相关代码仓库: ```python import requests # GitHub API搜索代码的URL url = "https://api.github.com/search/repositories" # 搜索关键词 query = "A diverse embedding-based composite reconstruction encoder–decoder for color fabric defect detection" # 构建请求参 params = { "q": query } # 发送请求 response = requests.get(url, params=params) # 检查响应状态码 if response.status_code == 200: data = response.json() # 打印搜索结果中的仓库名称和链接 for item in data["items"]: print(f"Repository Name: {item['name']}") print(f"Repository URL: {item['html_url']}") else: print(f"Request failed with status code: {response.status_code}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值