POJ 2133 Cow Imposters

高通平台 Android T 蓝牙技术全解析:A2DP 与 AVRCP 核心代码路径与交互流程 A2DP 接收端 - 连接流程(AVDTP 打开) 阅读详情

因为牌子的种类最多有2^16个,所以搜索一下就可以得到答案。

#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
#include <cmath>
using namespace std;
struct T
{
    int n;
    int c;
};
queue<T> q;
int tar,len,le,v[68000],E[120];
char str[20]="11001";
T tp,tp2;
int f(int len,char *str)
{
    int i,cnt;
    cnt=0;
    for (i=len-1; i>=0; i--)
    {
        cnt+=(str[i]=='1')?pow(2,len-i-1):0;
    }
    return cnt;
}
char *g(int len,int n)
{

    int i;
    for (i=len-1; i>=0; i--)
    {
        if (n>=pow(2,i))
        {
            str[len-i-1]='1';
            n-=pow(2,i);
        }
        else
            str[len-i-1]='0';
    }
    str[len]='\0';
    return str;
}
int judge(int a,int b)
{
    int cnt,t,i;
    cnt=0;
    for (i=len-1; i>=0; i--)
    {
        t=pow(2,i);
        if (a >= t && b >= t)
        {
            a-=t;
            b-=t;
        }
        else if (a >= t && b < t)
        {
            a-=t;
            cnt++;
        }
        else if (a < t && b >= t)
        {
            b-=t;
            cnt++;
        }
    }
    return cnt;
}
int main()
{
    int i,j,ans,degree;
    scanf("%d%d",&len,&le);
    getchar();
    scanf("%s",str);

    tar=f(len,str);
    while (!q.empty())
        q.pop();
    memset(v,0,sizeof(v));
    for (i=0; i<le; i++)
    {
        scanf("%s",str);
        E[i]=f(len,str);
        tp.n=E[i];
        tp.c=0;
        q.push(tp);
    }
    while (!q.empty())
    {
        tp=q.front();
        q.pop();
        for (i=0; i<le; i++)
        {
            tp2.n=tp.n^E[i];
            if (v[tp2.n] == 0)
            {
                v[tp2.n]=tp.c+1;
                tp2.c=tp.c+1;
                q.push(tp2);
            }
            else if (v[tp2.n] != 0 && tp.c+1 < v[tp2.n])
            {
                v[tp2.n]=tp.c+1;
                q.push(tp2);
            }
        }
    }
    if (v[tar] != 0)
    {
        printf("%d\n%s\n",v[tar],g(len,tar));
        return 0;
    }
    degree=-1;
    ans=-1;
    for (i=0; i<68000; i++)
    {
        if (v[i] != 0)
        {
            j=judge(tar,i);
            if (degree == -1 || degree > j)
            {
                ans=i;
                degree=j;
            }
            else if (degree == j)
            {
                if (v[ans] > v[i])
                {
                    ans=i;
                }
            }
        }
    }
    printf("%d\n%s\n",v[ans],g(len,ans));
}


统计学习导论(ISLR) 第四章分类算法课后习题 统计学习导论(ISLR) 参考资料: The Elements of Statistical Learning An Introduction to Statistical Learning 统计学习导论(ISLR)(二):统计学习概述 统计学习导论(ISLR)(三):线性回归 统计学习导论(ISLR)(四):分类 ISLR统计学习导论之R语言应用(二):R语言基础 ISLR统计学习导论之R语言应用(三):线性回归R语言代码实战 ISLR统计学习导论之R语言应用(四):分类算法R语言代码实战 统计学习导论 阅读详情

相关推荐

UOS忘记密码别慌!用LiveCD工具5分钟搞定,附命令行救援模式详细步骤

本文详细介绍了UOS系统密码遗忘时的两种解决方案:图形化LiveCD工具和命令行救援模式。针对普通用户,LiveCD工具提供5分钟快速重置密码的便捷操作;而技术人员可通过命令行深度解析系统分区挂载与密码修改流程。文章还包含安全加固建议,帮助用户预防类似问题发生。

weixin_27032989的博客 589

poj 超详细分类

POJ各题算法

liangkk的博客 1万+

麦克斯韦电磁场理论

1)从知识先后上说:麦克斯韦方程组为理解光的传播、反射、折射等现象提供了理论基础。不理解基础,怎么能理解上层建筑。2)从如何学懂上说,把基础学习的越牢,越深刻,后续学习上层建筑就会水到渠成一些,不会越学越多疑问。而是越学越少疑问。

weixin_55255438的博客 2825

poj 2133 Cow Imposters

这个题目需要注意的是一定要操作,即初始串及时跟目标串相同,仍然需要操作。 比较简单的搜索,应该很容易看出来,一次bfs搜出所有结果即可。 #include #include #include using namespace std; char a[20]; int n,m; int goal; int dp[70000],turn[111]; int que[70000]; bool t

yrleep的专栏 1274

VoIP概述

VoIP统一通信与VoIPVoIP与传统电话比较VoIP各项产品设备的类型及应用 统一通信与VoIP 统一通信指的是把计算机与传统通信技术统一成一体的新通信模式,融合计算机网络与传统通信网络在一个网络平台上,实现电话、传真、数据传输、音视频会议、呼叫中心、即时通信等众多应用服务 VoIP又称IP电话或IP网络电话,是Voice Over IP的缩写,这种技术通过对语音信号进行编码数字化,压缩处理成压缩帧,然后转换成为IP数据包在TCP/IP网络上进行传输,从而达到了在IP网络上进行语音通信目的 VoIP与传

kaminao的博客 4358

在 SAP BTP 中为 SAP AI Core 创建 Service Instance 和 Service Key 的完整实战指南

摘要:本文详细介绍了在SAP BTP上创建AI Core服务实例和密钥的关键步骤,这是实现ABAP系统与Gen AI大语言模型集成的核心技术环节。文章通过一个制造业财务问答场景的案例,系统梳理了从前提条件准备、架构理解到具体操作的全过程,重点解析了service instance创建、X.509证书配置等关键节点。特别强调了Extended计划选择、证书格式等易错点,为ABAP开发人员实现Gen AI场景提供了实用指南。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 271

POJ 2133 暴搜

题意: 思路: 按照题意暴搜注意 如果目标串==给的串 答案是2 //By SiriurRen #include <cstdio> #include <cstring> #include <algorithm> using namespace std; int n,k,goal,a[1005],head,tail,q[1000000],vis[1<<16],minn[17],rec[

SiriusRen的博客 498

Magisk如何针对性隐藏Root避免被检测

Magisk隐藏特征码有两种途径,一种是通过插件,一种是定制源码。插件的方式相对简单,但是使用范围也有限,好处是成本低好上手。定制源码难度大,成本高,好处是稳定,后续也好更新维护。

zhonglunshun的专栏 1万+

【USACO10HOL】 Cow Politics

题目大意 给出k组点,求出组内两点间的最大距离 核心思路 考虑贪心,每组内的最深一点一定是两最远距离点对之一。 证明很简单,可以分为在该点的祖先相同和祖先不同的情况。如果点对其中一个为另一个的祖先的话,一定会选择改组内最深的点,如果祖先不同,因为他们到lca的距离可以被等价地看为在该点的祖先上,所以也可以应用上述的结论。综上每组内的最深一点一定是两最远距离点对之一。 接下来的任务就是暴力...

weixin_30823001的博客 200

windows中搭建sonic云真机环境/云真机环境搭建-基于docker容器部署

基于Windows系统搭建Sonic远程云真机环境实现通过浏览器操作手机端系统

雾林小妖的博客 1016

Midscene.js(3):手把手教你用 YAML 脚本实现 AI 驱动的 Web UI 自动化「喂饭教程」

Midscene.js是一款开源的AI驱动UI自动化工具,通过自然语言描述即可控制浏览器或Android设备执行操作。它支持YAML脚本编写测试用例,降低了自动化测试门槛。

blues_C的博客 3241

【USACO】Cow Pedigrees(DP)

dp[i][j]代表总结点数为i的,高度不超过j的树的种类 dp[i][j] += dp[k][j] * dp[i - k - 1][j]; 注意取余的情况 结果为 dp[n][k] - dp[n][k - 1] /* ID: 18906421 LANG: C++ PROG: nocows */ #include using namespace std; const int maxn =

花月阁 774

【腾讯小龙虾 WorkBuddy 专栏 03】技能(Skills)制作全教程!自定义技能编写、导出分享、导入使用一步到位

🔥腾讯AI智能体WorkBuddy自定义技能全攻略 本文为零基础用户提供WorkBuddy自定义技能的完整教程,涵盖技能概念、编写规范到实操全流程。核心内容包括: 技能本质:标准化任务指令模板,可固化重复操作流程 三大价值:一键执行重复任务/跨设备共享/降低使用门槛 实操演示:以"桌面文档自动分类"为例,分步讲解编写、测试、导出 共享方案:支持单技能/批量导出,通过任意渠道传输分享 导入指南:3秒完成他人技能加载,并提供常见问题解决方案 高阶优化:增加异常处理、版本管理等提升技能普适性

AI人人懂 2960

UVa 11212 Editing a Book

黑书P207 例题 IDA* 搜索,估价函数设计得很经典。 #include #include #include using namespace std; class Board { public: int a[16]; int h; int n; bool readIn() { int i; scanf("%d",

仰望圣光的plusplus7 2068

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

POJ 2870 Light Up

题意简述:在n*m的格子中放置灯泡。其中格子中有些障碍,灯光可以照亮上下左右的格子,光线会被障碍挡住。 题目解法:搜索。         每个状态的转移会产生很多状态,而目标状态有是不固定的,所以不能BFS或双向BFS。但是DFS又很容易陷入搜索到很深但是却又是错误的状态,而最优解的深度又是不深。所以考虑使用迭代加深搜索。         剪枝:搜到每个障碍时,发现上面的格子是空的,剪枝。

仰望圣光的plusplus7 1791

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【博客搬家】本博客已全面停止更新,新博客地址 plusplus7.com

新博客地址:http://www.plusplus7.com

仰望圣光的plusplus7 1532

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

LA 3618 Cubic Eight-Puzzle

立体的八数码问题。         普通的DFS和BFS就别想了,迭代加深TLE,而用启发式搜索又想不到合适的启发函数。可发现目标状态有固定的2^8种,而状态转移的方式最多只有4种......所以用双向bfs,应该能解决问题。因为会产生很多重复的状态,所以用hash表判断一下重复的状态。stl的hash会TLE,所以还是手写静态链表哦。 #include #include #include

仰望圣光的plusplus7 1415

POJ 2132 Cow Math

此题我用的DFS过。 DFS每一条路,用res=gcd(res,now),不断更新res值。当访问到2时,用ans=lcm(ans,res),更新答案,即可。 剪枝:如果当前的ans可以整除当前的res,就剪掉,因为当ans%res=0,必然有lcm(ans,res)=ans。 剩余一个疑问就是:为什么lcm(a,b,c)=lcm(lcm(a,b),c)? #include #i

仰望圣光的plusplus7 1129

POJ 2137 Cowties

题意: n个点集,在每个点集里面选一个点,把所有的点按照编号连接成一个环,使连线长度最短。 解法是,枚举第一个点集的每一个点,设为起始点,逐步递推求长度,最后选择答案最小的那个。 需要注意的是,最后的答案是要输出整数,直接强制类型转换,用%.0f是会WA的。 #include #include #include #include #include using namesp

仰望圣光的plusplus7 1096

POJ 1416 Shredding Company

这题主要还是理解题意。 给你一个数n,和一串长度不超过6的数字。问怎么分割这串数字可以使得分割后的数和不大于n,注意数字的顺序不能打乱。如有多个答案,取最接近n的解。 如果不能成功分割,输出error,如果有多个最佳答案,输出rejected。 解法很简单,就搜索一下就好了~ #include #include #include #include using namespa

仰望圣光的plusplus7 1047

BNUOJ 3881 Jigsaw Puzzles

USACO Elite 2008 December Competition Silver 题意:给你一些正方形的拼图碎块,每个碎块有四个边,每边都有一个记号,分别是小写字母a-z。其中没有标记的边,也就是边界的边用'0'标记。题目给定一个矩阵,把这些碎块放进去,要求每个边相接的记号必须一样,边界上的边必须是'0'。 解法:DFS。这个操作起来还是挺麻烦的,做处理的时候要小心一些。

仰望圣光的plusplus7 966

LA 5506 Eight

同样是South Central USA 1998的题,POJ和HDU上的数据比较水,用BFS不加任何优化都可以AC,时间一般是三位数左右。而用A*或IDA*则可以把时间控制在10ms左右,甚至0ms!          然而UVa Live上的这道题是多数据的,用IDA*不加优化都会超时。除此之外题目输入输出很严格,case和case之间必须有空行,在最后一组case之后不能有空行,否则会Wr

仰望圣光的plusplus7 862

POJ 1753 Flip Game 状态压缩 枚举

POJ 1753 枚举,压缩状态,bfs~ #include #include #include #include #include using namespace std; int pow2[17]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536}; int change[16]={51200,

仰望圣光的plusplus7 744

POJ 3185 The Water Bowls

此题我是写了个BFS过的,用的队列是STL的queue,960ms过的。。 用2进制来压缩状态,然后列出20种操作数op[i]。 于是在i处的操作就等同于对now=now^op[i],和Flip Game的处理方法一样。 但是他们写的BFS会TLE就不知道为什么了。。还有用DFS过的= = 后来,得知了一个枚举加贪心的方法,但是没法证明是最优的,得去查查资料。 #include #i

仰望圣光的plusplus7 730

BNUOJ 3884 Hay Expenses

看第一眼,觉得是很裸的线段树,再看数据范围。。。就彻底无语了。。。 #include #include using namespace std; int main() { int n,a[510],i,s,e,ans,q; scanf("%d%d",&n,&q); for (i=1; i<=n; i++) { scanf("%d",a+i);

仰望圣光的plusplus7 618

POJ 2531 Network Saboteur

求无向完全图的最大割,n只有20,所以暴力可以过O(20*2^n)。 有个剪枝就是,贪心地选取下一个点。如果发现把点加入另一个集合,割值减少了,就不添加。 然后看了discuss发现有人说可以用什么随机算法过,于是就搜索了一下。。 随机化算法,是这样一种算法,在算法中使用了随机函数,且随机函数的返回值直接或者间接的影响了算法的执行流程或执行结果。随机化算法基于随机方法,依赖于概率大小。

仰望圣光的plusplus7 602
上一篇: POJ 2132 Cow Math
下一篇: OpenGL织梦之旅【第0章】前言
plusplus7
博客等级 码龄15年 59粉丝 173原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值