你缺什么(codevs 2928)
2024-09-21 12:39:03
题目描述 Description
继“你幸福吗”之后,央视又推出了“你缺什么”。而在采访过程中,记者发现了一些问题。
记者要采访n个人。已知第i个人要回答Ta缺某事物Xi,但如果Ta之前的一个人的答案和Ta一样,Ta就会改口。为了避免受访者改口,记者决定改变采访顺序。
现在给出这n个人的答案,请输出一种可行的方案。要求该方案字典序最小。数据保证有解。
输入描述 Input Description
第一行,一个数n。
接下来的n行,第i+1行为Xi。
输出描述 Output Description
一行,n个数,表示依次访问n个人的顺序。以空格隔开。
样例输入 Sample Input
10
1
5
4
1
4
2
1
3
3
5
样例输出 Sample Output
1 2 3 4 5 6 7 8 10 9
数据范围及提示 Data Size & Hint
0<n<=104,0<Xi<=5。数据由随机数产生。
数据太弱了,回溯都能过!!!
#include<cstdio>
#include<iostream>
#define M 10010
using namespace std;
int a[M],vis[M],q[M],n,flag;
void dfs(int t)
{
if(flag)return;
if(t>n)
{
for(int i=;i<=n;i++)
printf("%d ",q[i]);
flag=;
}
for(int i=;i<=n;i++)
if(!vis[i]&&a[i]!=a[q[t-]])
{
q[t]=i;
vis[i]=;
dfs(t+);
vis[i]=;
q[t]=;
}
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
q[]=;
vis[]=;
dfs();
return ;
}
最新文章
- Java 读写文件方案
- ObjectOutputStream序列化问题
- VBA 操作 Excel 生成日期及星期
- mysql 多表联合更新
- shell脚本定时操作数据库
- spring集合类型的setter注入的一个简单例子
- SQL(笔试题)网站上的广告位是轮播的,每天某一广告位最多可轮播的广告数量是有限制的,比如A广告位,每天只能轮播三个广告,但销售人员在销售广告位时并不考虑此限制,要求查询出合同表中,超过广告位轮播数量的合同。
- 【百度地图API】如何自定义地图图层?实例:制作麻点图(自定义图层+热区)
- (2017浙江省赛E)Seven Segment Display
- python 虚拟环境的搭建
- UVa - 102 - Ecological Bin Packing
- iOS中用UILabel实现UITextView的占位文字
- 华为oj之质数因子
- C#-导入Excel 内容到 DataTable中
- String.format()的使用
- 斐讯面试记录—TCP滑动窗口及拥塞控制
- WebSphere下配置HTTP压缩
- http与https区别
- 《DSP using MATLAB》Problem 6.20
- Thread类的常见问题