| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 682 人关注过本帖
标题:在其它地方看到的一道题,想了很久没得出答案,想来请教
只看楼主 加入收藏
骇客不会飞
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-9-6
结帖率:0
收藏
已结贴  问题点数:10 回复次数:7 
在其它地方看到的一道题,想了很久没得出答案,想来请教
有一行彩色的棋子,每个棋子的颜色是k种颜色之一。你不能改变棋子的顺序,但是可以移走一些棋子。问至少移走多少个石子,才能使得两个同色得石子之间没有其他颜色的棋子? 输入格式: 多组数据,每组数据两行,第一行是两个整数n和k, 1<=n<=100, 1<=k<=5 下一行是n个在[1..k]范围内的正整数,代表每个棋子的颜色。 输出格式: 每组测试数据输出一行包含一个整数,表示至少移走的石子数。 注:可以移走第2个第7个棋子。  
挑战规则:   
输入样例 10 3 2 1 2 2 1 1 3 1 3 3 输出样例: 2
搜索更多相关主题的帖子: 莱昂纳德 
2014-05-18 21:45
骇客不会飞
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2013-9-6
收藏
得分:0 
我不是伸手党,我自己思考了很长时间不知道如何下手,好吧,新手伤不起
2014-05-18 21:47
funyh250
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:26
帖 子:290
专家分:1573
注 册:2013-12-25
收藏
得分:3 
#include <iostream>

using std::cin;
using std::endl;
using std::cout;

void main()
{
    int n=1,a[100],b[100],x(0),xx(0);
    int y;
    while(cin>>y)
    {
        
        b[xx]=y;
        xx++;
        if(y>5)
        {
        }
        else
        {
           a[x]=y;
           x++;
        }
    }
    cout<<"输入的棋子的顺序为:"<<endl;
    for(int w=0;w<xx;w++)
        cout<<b[w]<<" ";
    int s(0);
    for(int i=0;i<x;)
    {
        int j=i+1,z=i+2;
        if(a[i] == a[z])           //判断是否为同色
        {
            if(a[j] != a[i])       //判断中间棋子的颜色
            {
                s++;                //如果中间棋子颜色与旁边不同,移走
                i+=2;              //a[j]被移走了,下一个应该是a[z]
            }
        }
        else
            i++;
    }

    cout<<endl<<"需至少移走的棋子的数量为:"<<s<<endl;
}


只测试了你给出的样例

互学!

学习是大事   吃喝拉撒睡是小事   其他的那都不是事
2014-05-18 23:48
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:3 
考虑了一小时二十分钟,目前只想到空间压缩后提取所有可行解的方法,但如何描述最优解映射的方法暂时想不出来,呵呵

梦想拥有一台龙芯3A-4000
2014-05-19 01:00
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
加上过程记录的话肯定能实现,但应该有更好的方法吧……

梦想拥有一台龙芯3A-4000
2014-05-19 01:23
ying8501
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:6
帖 子:1092
专家分:1446
注 册:2008-11-24
收藏
得分:3 
。。。

[ 本帖最后由 ying8501 于 2014-5-19 09:36 编辑 ]
2014-05-19 08:56
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:3 
BFS可解,也许有更快的。

再等等吧。


[fly]存在即是合理[/fly]
2014-05-19 10:13
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
http://blog.

楼主可以参考一下。

梦想拥有一台龙芯3A-4000
2014-05-21 13:04
快速回复:在其它地方看到的一道题,想了很久没得出答案,想来请教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041739 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved