codevs 2928 你缺什么

时间限制: 1 s

空间限制: 128000 KB

题目等级 : 钻石 Diamond

题目描述 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>

using namespace std;
int a[10001],vis[10001],ans[10001],n,flag;
void ss(int t)
{
    if(flag) return;
    if(t>n)    return;
    for(int i=2;i<=n;i++)
    {
        if(!vis[i]&&a[i]!=a[ans[t-1]])
        {
            ans[t]=i;
            vis[i]=1;
             ss(t+1);
             vis[i]=0;
             ans[t]=0;
        }
    }
}
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    scanf("%d",&a[i]);
    ans[1]=1;
    vis[1]=1;
    ss(2);
    for(int i=0;i<n;++i)
    cout<<ans[i]<<" ";
    return 0;
}
时间: 2024-11-03 20:55:22

codevs 2928 你缺什么的相关文章

你缺什么(codevs 2928)

2928 你缺什么 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description 继“你幸福吗”之后,央视又推出了“你缺什么”.而在采访过程中,记者发现了一些问题. 记者要采访n个人.已知第i个人要回答Ta缺某事物Xi,但如果Ta之前的一个人的答案和Ta一样,Ta就会改口.为了避免受访者改口,记者决定改变采访顺序. 现在给出这n个人的答案,请输出一种可行的方案.要求该方案字典序最小.数据保证有解. 输入描述 Input Descr

2928 你缺什么

2928 你缺什么 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 继“你幸福吗”之后,央视又推出了“你缺什么”.而在采访过程中,记者发现了一些问题. 记者要采访n个人.已知第i个人要回答Ta缺某事物Xi,但如果Ta之前的一个人的答案和Ta一样,Ta就会改口.为了避免受访者改口,记者决定改变采访顺序. 现在给出这n个人的答案,请输出一种可行的方案.要求该方案字典序最小.数据保证有解. 输入描述 Inpu

java实现求一个数组里最大值和最小值之前缺省的数的算法

问题描述: 求一个数组里最大值和最小值之间缺省的数,例如 int arrDemo = {1, 3, 7};  那么就要输出最小值1和最大值7之间缺少的数字2,4,5,6 代码如下,有更好的思路欢迎大家在评论区留言讨论 1 package test; 2 3 public class Test { 4 5 static int[] array = { 6 -10,0,3,3,9 7 }; 8 9 private static void printEmptyItems(int[] array) {

[ CodeVS冲杯之路 ] P2492

不充钱,你怎么AC? 题目:http://codevs.cn/problem/2492/ 在此先orz小胖子,教我怎么路径压缩链表,那么这样就可以在任意节点跳进链表啦(手动@LCF) 对于查询操作,直接树状数组(以下简称BIT)维护,修改操作就一个个暴力开方搞,再用差值单点更新BIT 不过这样会TLE,要加一点优化对不对,正如开头所说的路径压缩链表 路径压缩链表其实就是个并查集,在普通的链表里,删去两个连续的节点后会是下面这种情况,如删去2,3 当访问 2 的时候,会跳到3,但 3 已经删除了,

iOS开发swift版异步加载网络图片(带缓存和缺省图片)

iOS开发之swift版异步加载网络图片 与SDWebImage异步加载网络图片的功能相似,只是代码比较简单,功能没有SD的完善与强大,支持缺省添加图片,支持本地缓存. 异步加载图片的核心代码如下:  func setZYHWebImage(url:NSString?, defaultImage:NSString?, isCache:Bool){         var ZYHImage:UIImage?         if url == nil {             return   

[CODEVS 1281] Xn数列

描述 给你6个数,m, a, c, x0, n, g Xn+1 = ( aXn + c ) mod m,求Xn http://codevs.cn/problem/1281/ 分析 比较裸的矩阵乘法题, 好久没做了, 写写思路 假设矩阵 A = { {a1, a2}, {a3, a4} }, B = { {b1, b2}, {b3, b4} }. 根据矩阵乘法的计算方法, 有 : A×B = { {a1b1+a2b2, a1b2+a2b4}, {a3b1+a4b3, a3b2+a4b4} }. 那

绝不又一次定义继承而来的函数的缺省參数值

首先.此处的函数指的是 virtual 函数,为什么不是non-virtual函数呢?是由于在public继承中.non-virtual函数表示派生类是须要继承其接口与其强制实现的. 假设你的Derived已经在考虑重写non-virtual函数了.那么你是应该好好审视一下,在此处使用 public继承是否合理了. 因此.本文仅仅解说virtual函数的缺省參数值,比如以下的代码: 在C++代码中,函数的參数值是静态绑定的.而通过基类的指针或者引用对virtual函数调用的动态绑定的. 因此.当

Codevs 1257 打砖块

1257 打砖块 http://codevs.cn/problem/1257/ 题目描述 Description 在一个凹槽中放置了n层砖块,最上面的一层有n块砖,第二层有n-1块,……最下面一层仅有一块砖.第i层的砖块从左至右编号为1,2,……i,第i层的第j块砖有一个价值a[i,j](a[i,j]<=50).下面是一个有5层砖块的例子.如果你要敲掉第i层的第j块砖的话,若i=1,你可以直接敲掉它,若i>1,则你必须先敲掉第i-1层的第j和第j+1块砖. 你的任务是从一个有n(n<=5

【C++缺省函数】 空类默认产生的6个类成员函数

1.缺省构造函数. 2.缺省拷贝构造函数. 3. 缺省析构函数. 4.缺省赋值运算符. 5.缺省取址运算符. 6. 缺省取址运算符 const. <span style="font-size:18px;"> class A { public: A(){}//缺省构造函数 A(const A&){}//拷贝构造函数 ~A(){}//析构函数 A&operator=(const A&){}//赋值运算符 A*operator&(){}//取址运算