【UVA11205】The broken pedometer,思路+代码,可能是最不装逼最朴素最易懂效率也最差的代码。

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
/**
    Problem : UVA11205 - The broken pedometer
    Begin Time: 28th/Mar/2012 11:30 a.m.
    Finish Time: 29th/Mar/2012 2:14 a.m.
    Last Time : About 6 hours.
    State:9924407	11205	The broken pedometer	Accepted	C++	2.684	2012-03-28 18:11:32
    Knowledge : BFS,剪枝都没有,还有子集生成,也算有个小小的状态压缩?
    Exp.: WA * 4 :这四个Wrong Answer奉献给了误把BFS写成DFS,不应该
          WA * 4 :我他妈对于后四个WA无力吐槽了啊我操。边界,边界!
                    tmp.depth + 1 <= col写成了 tmp.depth + 1 < col结果就少了一组组合啊!过脑子啊白痴!写程序时。
                    操操操操操。
    Thought:
            每行换成10110101这样的整数(因为最多才2^15,不用位运算了,否则怪麻烦的)
            开一个数组isSel[],如果ith列被选了那么isSel[i] = true;
            然后根据isSel判断目前选的列数,以及应该从那几列中抽取子集。
            其实位运算能快一些。
    Summerize:
            发现搜索出错的时候
            1.仔细想一下搜索的过程,状态转移的方式,是否有状态结点未展开
            2.想一下边界,是否有问题
            最重要的,写之前看清楚了,一般有最短,最少,最小字样的统统为BFS.
            搜索的如果是个树,则不需要回溯,如果是个图,则需要回溯。
*/
const int MAXN = 200;
const int MAXP = 50;
int puzzle[MAXN][MAXP];
int subset[MAXN];
bool isSel[MAXN];
int minN;
bool isFound;
struct node
{
    int depth;
    bool isSel[MAXN];
};
node tmp;
queue<node> que;
int comp(const void *a, const void *b)
{
    return (*(int*)a - *(int*)b);
}
bool check(int row,int col)
{
    int cnt = 0;

    memset(subset,0,sizeof(subset));
    for(int i = 0 ; i < col ; i++)
    {
        if(isSel[i] == true)
            cnt++;
    }

    for(int j = 0 ; j < row ; j++)
    {
        for(int i = 0 ; i < col ; i++)
        {
            if(isSel[i] == true )
            {
                subset[j] = subset[j] * 10 + puzzle[j][i];
            }
        }
    }

    qsort(subset,row,sizeof(int),comp);

    int i = 0;
    int j = i+1;
    while( j < row )
    {
        if(subset[i] == subset[j])
        {
            return false;
        }
        i++,j++;
    }
    if( minN > cnt)
    {
        minN = cnt;
    }
    return true;
}
int Solve(int row,int col,int now)
{
    node tmp,tmp1,k;
    while(!que.empty())
    {
        tmp=que.front();
        que.pop();
        memcpy(isSel,tmp.isSel,sizeof(isSel));
        tmp1 = tmp;
        check(row,col);
        if(tmp.depth + 1  <= col)
        {
            tmp1.depth = tmp.depth + 1;
            tmp1.isSel[tmp1.depth - 1] = false;
            que.push(tmp1);
            tmp1.isSel[tmp1.depth - 1] = true;
            que.push(tmp1);
        }
    }
    return minN;
}
int main()
{
#ifndef ONLINE_JUDGE
    freopen("b:\\acm\\UVA\\UVA11205\\input.txt","r",stdin);
    freopen("b:\\acm\\uva\\uva11205\\output.txt","w",stdout);
#endif
    int T,P,N,k;
    //  while( scanf("%d",&T) != EOF )
    scanf("%d",&T);
    {
        for(int t = 1 ; t <= T ; t++)
        {
            scanf("%d%d",&P,&N);
            memset(puzzle,0,sizeof(puzzle));
            memset(subset,0,sizeof(subset));
            memset(isSel,0,sizeof(isSel));
            for(int i = 0 ; i < N ; i++)
            {
                for(int j = 0 ; j < P ; j++)
                {
                    scanf("%d",&puzzle[i][j]);
                }
            }
            minN = 200;

            tmp.depth = 1;
            tmp.isSel[0] = true;
            que.push(tmp);

            tmp.depth = 1;
            tmp.isSel[0] = false;
            que.push(tmp);

            k = Solve(N,P,0);
            printf("%d\n",k);
            while(!que.empty())
            {
                que.pop();
            }
        }

    }
    return 0;
}

2026年新永康市公交线路及站点矢量数据.zip 数据格式:shp 数据坐标:GCJ02 数据更新时间:2026年9月 公交线路来源:8684网站 https://8684.com.cn/ 站点数据来源:高德API接口 数据打开方式:QGIS或Arcgis 站点数据字段:名称、序号、对应线路、几何信息 线路数据字段:名称、类型、起点、终点、开始时间、结束时间、起步价、全价、长度、公司、几何信息 立即下载

相关推荐

2026年新开封市公交线路及站点矢量数据.zip

数据格式:shp 数据坐标:GCJ02 数据更新时间:2026年9月 公交线路来源:8684网站 https://8684.com.cn/ 站点数据来源:高德API接口 数据打开方式:QGIS或Arcgis 站点数据字段:名称、序号、对应线路、几何信息 线路数据字段:名称、类型、起点、终点、开始时间、结束时间、起步价、全价、长度、公司、几何信息

【POJ1077】Eight 八数码问题,解题报告+思路+代码

#include #include #include #define INPUT using namespace std; /** Problem : poj1077,hdu1043,经典的八数码问题。 知识点: BFS + HASH + 打表 + 父亲节点记录 境界:3 - BFS+HASH+打表 A了两天!!! 记得拿启发式,双向BFS重新写

c0de4fun的完美算(nei)法(he)教室-我们仍不知道,那天调用的驱动的名字。 5773

CAD+ËÃÊÐֻɼ

CAD+ËÃÊÐֻɼ

【HDU2222】 0.6%达成 模板题 果然无聊的时候A题才是正确的选择啊因为你就会更加无聊

#include #include #include #include #include using namespace std; /** Reference:http://www.cnblogs.com/procedure2012/archive/2012/01/29/2331460.html Thanks to: lpp学长给的模板和讲义 Pre-Knowle

c0de4fun的完美算(nei)法(he)教室-我们仍不知道,那天调用的驱动的名字。 4860

【ZOJ3587】Marlon's String——白四爷×KMP 白濑肆の算法完全解读KMP篇 KMP来袭第二弹前缀什么的果然讨厌了!【1.0%达成!】

#include #include #include #include /** Title: 【ZOJ3587】Marlon's String——白四爷×KMP 白濑肆の算法完全解读KMP篇 KMP来袭第二弹前缀什么的果然讨厌了!【1.0%达成!】 Problem: ZOJ3587 Marlon's String Knowledge Point : KMP算法の深

c0de4fun的完美算(nei)法(he)教室-我们仍不知道,那天调用的驱动的名字。 4476

【CodeForces 155C Hometask】白濑肆×字符串+DP——果然是字符串处理什么的好讨厌啊尤其是换行符的处理看来不用CIN不行了呢DP的转移真心不会啊水到家了怎么办!【1.1%达成】

#include #include #include #include using namespace std; const int MAX_SIZE = 1e5+10; char text[MAX_SIZE]; /** Title: 白濑肆×字符串+DP——果然是字符串处理什么的好讨厌啊尤其是换行符的处理看来不用CIN不行了呢虽然效率低人家好伤心的还有就是DP的转移真心不会啊水到

c0de4fun的完美算(nei)法(he)教室-我们仍不知道,那天调用的驱动的名字。 4016

【HDU4313】Matrix 多校 解题报告+AC代码+思路+算法正确性证明,此为Kruskal贪心恶心版本,非自虐倾向慎入!建议想找解题报告的童鞋看简单版本的,这个我写给自己【目标达成 0.2%】

#include #include #include #include using namespace std; /** 【警告】这个恶心版本是我写给自己看的,关于解题报告,还是请移步简单版本吧,就在这篇文章的前一篇。 c0de4fun声明:本人未给出测试数据、未声明一次AC的题均为参考解题报告自己写的。 对那些无私贡献的大神真诚

c0de4fun的完美算(nei)法(he)教室-我们仍不知道,那天调用的驱动的名字。 3867

【ACM模板】HASH表(无删除功能,添查)

#include #include #include #include #include #include using namespace std; const int HASH_SIZE = 1000000; const int HASH_KEY = 17; int next[HASH_KEY][HASH_SIZE]; int hash[HASH_SIZE]; int origin_

c0de4fun的完美算(nei)法(he)教室-我们仍不知道,那天调用的驱动的名字。 3772

【0.9%】SPOJ7758 Grwoing Strings 解题报告 + AC代码 + 思路 + AC自动机简短总结

#include #include #include #include #include using namespace std; const int MAX_SIZE = 1000100; /** 【0.9%】SPOJ7758 Grwoing Strings 解题报告 + AC代码 + 思路 + AC自动机简短总结 ——果然智商捉急的话就要WA到死才能AC啊人生来不是给

c0de4fun的完美算(nei)法(he)教室-我们仍不知道,那天调用的驱动的名字。 3720

【HDU3415】Max Sum of Max-K-sub-sequence,思路+解题报告+AC代码+自虐般疯狂吐槽【0.3%达成!】

#include #include #include #include using namespace std; const int MAX_SIZE = 100010 * 2; const int INFINITE = 99999999; int num[MAX_SIZE]; int sum[MAX_SIZE]; int q[MAX_SIZE]; int ind[MAX_SIZE]; i

c0de4fun的完美算(nei)法(he)教室-我们仍不知道,那天调用的驱动的名字。 3695

【ZOJ3228】白濑肆の完美算法教室补番作,0.7%达成 白濑肆×AC自动机

#include #include #include #include #include using namespace std; /** 就是一个AC自动机 但是每个单词有两个状态,[0]是可以overlap,[1]是不能overlap时候的次数 我们用last数组记录下每个不能overlap的单词出现的位置,如果 当前位置 - last[word]

c0de4fun的完美算(nei)法(he)教室-我们仍不知道,那天调用的驱动的名字。 3483

UVa10167】 Birthday Cake,思路+代码+解题报告

#include #include #include #include // #define INPUT /** Problem: UVA10167 - Birthday Cake Begin Time:22nd/Mar/2012 5:00 p.m. End Time: 22nd/Mar/2012 7:35 p.m. Last Time: 2H 35M

c0de4fun的完美算(nei)法(he)教室-我们仍不知道,那天调用的驱动的名字。 3041

【HDU4313】Matrix 多校 解题报告+AC代码+思路+算法正确性证明,此为Kruskal贪心简单版本,恶心版本稍后放出【目标达成 0.2%】

#include #include #include #include using namespace std; /** c0de4fun声明:本人未给出测试数据、未声明一次AC的题均为参考解题报告自己写的。 对那些无私贡献的大神真诚的致敬!本题的测试数据可以看后面 Problem: HDU4313 - Matrix Refe

c0de4fun的完美算(nei)法(he)教室-我们仍不知道,那天调用的驱动的名字。 2832

【HDU4313】 - Matrix - 树状DP Version 思路+解题报告+AC代码【0.4%达成】

#include #include #include #include #include using namespace std; /** Problem: HDU4313 - Matrix - DP Version【0.4%达成】 Copyright : 归我们学校集训队和本人所有,未经同意可以转载。 【但是胆敢用于培训的话,贵学校服务

c0de4fun的完美算(nei)法(he)教室-我们仍不知道,那天调用的驱动的名字。 2798

【HDU2571】命运

#include #include #include #include using namespace std; const int MAXN = 100; const int MAXM = 1100; int maze[MAXN][MAXM]; int dp[MAXN][MAXM]; int solve(int n,int m,int N,int M) { //向下一次只能走一格。但是

c0de4fun的完美算(nei)法(he)教室-我们仍不知道,那天调用的驱动的名字。 2722

【ZOJ3471】Most Powerful, 思路+代码+解题报告(好久没写解题报告了……)【目标达成:0.1%】

/** Problem:ZOJ3471-Most Powerful. Reference:http://blog.csdn.net/magicnumber/article/details/6182891 Knowledge point:状态压缩DP Thought: 根据炮兵阵地(那是别的题)和这道题,还有一次多校的经验(就是那个类似拼图的那个题,给你

c0de4fun的完美算(nei)法(he)教室-我们仍不知道,那天调用的驱动的名字。 2656

需求响应动态冰蓄冷系统与需求响应策略的优化研究(Matlab代码实现)

内容概要:本文围绕需求响应动态冰蓄冷系统及其需求响应策略的优化展开研究,利用Matlab进行代码实现与仿真分析。研究聚焦于冰蓄冷系统在电力负荷削峰填谷中的关键作用,通过构建系统的能耗模型与需求响应机制,优化冷负荷调度策略,旨在降低用电成本、提升能源利用效率,并增强电网运行的稳定性与灵活性。文中系统阐述了系统建模方法、多目标优化问题的构建(涵盖经济性与舒适性)、约束条件的设定以及智能优化算法(如遗传算法、粒子群优化等)的应用过程,终求解出在分时电价等激励政策下的系统优运行方案,为实际工程应用提供理论支持与技术路径。; 适合人群:具备一定电力系统、暖通空调(HVAC)、能源管理或自动化控制背景,熟悉Matlab编程语言与基本优化算法,从事相关领域科研或工程应用的研究生、工程师及技术人员。; 使用场景及目标:①应用于工业园区、大型商业综合体、公共建筑等配备冰蓄冷系统的场所,进行节能优化设计与运行策略制定;②支撑电力系统需求侧管理、虚拟电厂构建及智能调度的研究与实践;③为实现“双碳”战略目标下的低碳、高效、灵活的综合能源系统提供关键技术参考与仿真验证工具。; 阅读建议:读者应结合提供的Matlab代码与理论模型进行同步学习,重点关注系统建模的物理逻辑、目标函数的设计思路与优化算法的具体实现细节,建议动手调试不同参数(如电价信号、负荷水平)以深入理解需求响应机制对系统调度效果的影响。

上一篇: 【POJ1077】Eight 八数码问题,解题报告+思路+代码
下一篇: 【HDU2571】命运
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值