poj1465

声纹识别初学 最近开始关注声纹识别技术,发现国内做这个的确实没有几家,而且大多重点推声纹认证,用在公安司法金融领域,而我却关注文本无关的声纹识别,这里把我搜到的一点资料汇总在此. 发现njustzj001的专栏有两篇文章适合入门的我,贴下链接: 综述:  http://blog.youkuaiyun.com/xmu_jupiter/article/details/47209961 PLDA解释:  http:// 阅读详情
Multiple
Time Limit: 1000MSMemory Limit: 32768K
Total Submissions: 5423Accepted: 1179

Description

a program that, given a natural number N between 0 and 4999 (inclusively), and M distinct decimal digits X1,X2..XM (at least one), finds the smallest strictly positive multiple of N that has no other digits besides X1,X2..XM (if such a multiple exists).

Input

The input has several data sets separated by an empty line, each data set having the following format:

On the first line - the number N
On the second line - the number M
On the following M lines - the digits X1,X2..XM.

Output

For each data set, the program should write to standard output on a single line the multiple, if such a multiple exists, and 0 otherwise.

An example of input and output:

Sample Input

22
3
7
0
1

2
1
1

Sample Output

110
0
 
     一道比较经典的BFS,剪纸策略真的很强大,值得学习!!
剪枝策略:
若A=n*i+r
  B=n*j+r
即A和B同余(i<j),那么若A*10+d[k]能被n整除,那么B*10+d[k]也能被n整除(其中d[k]表示允许出现的一个数字),所以此处就可以做个剪枝了,对于余数相同的数取其最小的。
 
ps:由于最后的结果可能会很大,所以我在每个状态节点中记录了前一个状态,而且在每个状态中记录当前状态是由哪个数字得到的。
#include<iostream>
#include<algorithm>
#include<cstdio>

using namespace std;
struct st
{
    int pre;//前一个状态
    int r;//余数
    int d;//个位数
}w,v;
st q[5000];
int num[10];//数字
bool visit[5000];
int n,m;

void output(int i)
{
    if(q[i].pre==-1)
        return;
    output(q[i].pre);
    printf("%d",q[i].d);
}

void bfs()
{
    if(n==0)
    {
        printf("0\n");
        return;
    }
    int front,rear;
    bool ok;
    front=rear=0;
    w.pre=-1;
    w.d=0;
    w.r=0;
    q[rear++]=w;
    visit[0]=true;
    ok=false;
    while(front<rear)
    {
        w=q[front++];
        for(int i=0;i<m;i++)
        {
            int r=w.r*10+num[i];
            if(r>=n&&r%n==0)
            {
                output(front-1);
                printf("%d\n",num[i]);
                ok=true;
                break;
            }
            r%=n;
            if(!visit[r])
            {
                visit[r]=true;
                v.r=r;
                v.pre=front-1;
                v.d=num[i];
                q[rear++]=v;
            }
        }
        if(ok)
            break;
    }
    if(!ok)
        printf("0\n");
}

int main()
{
    while(~scanf("%d%d",&n,&m))
    {
        for(int i=0;i<n;i++)
            visit[i]=false;
        for(int i=0;i<m;i++)
            scanf("%d",num+i);
        sort(num,num+m);//由小到大排序
        bfs();
    }
    return 0;
}

SerDes学习笔记:DFE均衡架构示例(USB3.1、PCIe3.0\4.0) 本文探讨了DFE均衡器架构在不同数据接口中的应用特性。研究表明,抽头数量随数据速率提升而增加,1-16抽头架构较为常见。通过PCIeGen3/4实例分析,对比了单抽头、双抽头和15抽头DFE的性能差异,证明多抽头结构能通过精细调节有效提升噪声容限和降低误码率。文章详细阐述了DFE工作原理,包括其通过反馈信号对输入信号的补偿机制,以及不同抽头对消除码间干扰的作用。实验采用8Gbps速率(125ps/UI)进行波形仿真,直观展示了均衡处理前后的信号变化,为理解信道均衡技术提供了重要参考。 阅读详情

相关推荐

数据中心机房建设标准及依据

深刻理解、尊重并恪守这些依据,是我们以科学、经济、可靠的方式,为蓬勃发展的数字经济筑牢基石的唯一路径。让我们共同努力,以标准为依据,以匠心为精神,建造更多世界一流的高效能、高可用、高智能的绿色数据中心,共同赋能数字中国的宏伟事业,支撑中华民族在数字时代的伟大复兴征程中稳步前行!今天我将力图以宏大的视角和深入的剖析,系统性地阐述数据中心机房建设所应遵循的多层次、多维度的标准依据,揭示这些依据背后的深层逻辑与时代使命,并探讨其如何共同作用于一座世界级数据中心的诞生。,以支持万兆乃至更高速率的传输。

qq_39980997的博客 1139

poj 1465 (BFS+剪枝)

解题思路: 剪枝用到了数论中的知识: 若a % n = r, 则( 10 * a + b ) % n = ( 10 * r + b ) % n, 又如果现在存在一个c, c > a且c % n = r, 则由于扩展的时候是相同的扩展, c就是个重复的状态, 且没有a更优。 人工模拟队列,起始为:head=0; tail=0;  队列还有数据的条件: head #i

记录走过的风风雨雨 674

Prometheus常用配置介绍

除了 scrape_configs 外,上部还有 global 和 rule_files 部分, 其中 global 中 是 全 局 参 数 , scrape_interval 指 定 全 局 默 认 的 时 间 间 隔 , evaluation_interval 指定告警规则校验的时间间隔,rule_files 指定了告警规 则文件的位置名称。• annotations(注释):它们被用于存储更长的其他信息,例如警报描述 或者链接,注释值也可以被模板化。• alert:告警的名称。

weixin_42886699的博客 2260

POJ 1465 Multiple(BFS+同余剪枝)

POJ 1465 Multiple(BFS+同余剪枝) http://poj.org/problem?id=1465 题意:给你一个属于[0,4999]的数n和多个十进制单数字.现在要求你输出一个m,这个m是n的最小倍数,且仅有我们之前给出的数字构成. 分析:        首先我们要知道如果存在由m个数位组成且是n的最小倍数的数,那么这个数一定每一位都是指定的数位.所以我们用BFS从0开

code 2317

Synopsys AXI VIP 从环境搭建到首个验证场景运行

本文详细介绍了Synopsys AXI VIP从环境搭建到首个验证场景运行的全过程,包括VIP安装、示例工程生成、验证环境解析、仿真调试技巧及进阶优化。特别针对AXI协议验证中的常见问题提供了实用解决方案,帮助工程师快速掌握这一SoC验证必备工具。

weixin_29185493的博客 340

使用3sigma原则去除数据表中的极端值

本文使用3sigma解决数据表中出现的极端值问题,其中包括基本原理、使用原则(检验方法)、代码展示这3个部分

qq_51397866的博客 4378

POJ--1465--Multiple【BFS+同余定理】

链接:http://poj.org/problem?id=1465 题意:给一个数字n,和m个数字,找一个由这些数字组成的最小的n的倍数,如果不存在输出0。 思路:这题怎么想都想不到bfs上去,看了别人的解题报告,其实是用bfs来枚举,但是加了一个牛逼的剪枝:同余。即如果A%X==B%X,则(A*10+K)%X==(B*10+K)%X。 我们枚举m中每一个数字做这个K,实际上是枚举了

阳光照耀圣西罗 841

小程序设计中的区块链应用:数字藏品实现

本文旨在为开发者提供在小程序中实现区块链数字藏品功能的完整技术方案。区块链与数字藏品的基础概念智能合约的设计与实现小程序与区块链的交互方式数字藏品的完整实现流程文章将从基础概念入手,逐步深入到技术实现层面,最后通过完整项目案例展示数字藏品在小程序中的实现方式。每个技术点都会配合代码示例和架构图进行说明。区块链:一种分布式数据库技术,通过加密算法保证数据不可篡改数字藏品:基于区块链技术的数字资产,具有唯一性和可验证性NFT。

小程序开发 1350

poj 1465 Multiple

Multiple Time Limit: 1000MS   Memory Limit: 32768K Total Submissions: 6199   Accepted: 1350 Description a program that, given a natural number N between 0 and 4999 (inc

GAUSS_CLB 710

示波器核心参数选型指南:带宽、采样率与嵌入式调试实战

示波器是电子工程师进行信号观测与故障诊断的基础仪器,其性能由带宽、采样率、通道数、存储深度、触发系统和探头特性共同决定。带宽定义高频响应边界,需遵循5倍法则以保障数字信号上升沿测量精度;采样率则依据奈奎斯特定理并结合工程冗余(通常≥2.5×带宽)实现可靠时域重建。二者协同影响信号完整性评估能力,尤其在UART、I²C、SPI等嵌入式总线调试中至关重要。高存储深度支持长时捕获与毛刺定位,智能触发与硬件协议解码进一步将波形分析升维至语义级。本文围绕真实嵌入式场景,解析参数间的耦合关系与典型误用陷阱。

weixin_42588877的博客 91

基于python CNN卷积神经网络模型实现6类别垃圾分类 毕业设计 附完整代码数据

基于python CNN卷积神经网络模型实现6类别垃圾分类 毕业设计 附完整代码数据

1665

POJ 1465 Multiple

题意:给一个数n,和m个0~9的数字,问n或者n的倍数能不能只由这m个数字组成,能的话输出最小的那个,不能输出0. 解法:BFS搜之。但是单纯的暴力肯定不行,因为你不能判断不能组成的情况。 由 (a*x+b)%n == ((a%n)*x+b)%n 可知,当两个数对n取模的值相同时,对较大的那个数的搜索必然是重复的,可以跳过。 然后就是题目的另外一个坑,题目给的m个数必然是在0~9之间

= = 879

手机银行应用架构设计

网上银行借助互联网、移动通信网络等技术向客户提供金融服务,易受到通讯层面的安全威胁,金融机构应从通讯协议、安全认证、通信链路安全等层面,采取措施有效应对相关风险。网上银行系统服务器端提供网上银行应用服务和核心业务处理功能,金融机构应充分利用物理环境、通信网络、计算环境等领域的防护技术,在攻击者和受保护的资源间建立多道严密的安全防线。 网上银行除直接向用户提供金融服务外,也可能与外部机构开展业务合作。在网上银行系统设计、开发、部署和运营过程中,应充分考虑外部机构的系统可能存在的安全风险,并针对各类风险进行有效

银行信息系统应用架构详解 4830

POJ 1465 Multiple (BFS,同余定理)

http://poj.org/problem?id=1465 Multiple Time Limit: 1000MS   Memory Limit: 32768K Total Submissions: 6164   Accepted: 1339 Description a program that, given

fcbruce 1386

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

搜索_Poj 1465_剪枝_余数判重

题目链接: http://poj.org/problem?id=1465 题目大意: 给你m个数字,这些数字都是小于10的,让这m个数字组成一个数字k,使得k%n==0。 求最小的k。如果这样的k是不存在的,则输出“0”。 解题思路: BFS+余数判重。 余数判重: 设两个整数a和b,如果a%n==b%n,那么(a*x+c)%n==(b*x+c)%n。 所以如

sanmingzi3344的专栏 818

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Multiple POJ - 1465(同余剪枝)

Multiple 题目链接:POJ - 1465题意:给出一个十进制数n, 和m个十进制个位数, 找出一个最小的数x, 使得x是n的倍数, 输出n;一个新知识点: 同余剪枝;我们先把m个...

Sirius_han的博客 487

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

poj 1465 bfs,余数判重

链接:http://poj.org/problem?id=1465 题意:给一个数N,再给M个数,x1,x2....xm,求N的最小倍数,满足最小倍数的各个数字都在x1,x2....xm中。 思路:不会做,没想法,完全想不到用宽搜来做。好神奇啊。。。于是参考了人家的。 参考链接:http://blog.youkuaiyun.com/oceanlight/article/details/7871108 ...

weixin_30278311的博客 101

poj 1465 Multiple 静态节点+余数判重+非STL队列的广搜

//poj 1465 //sep9 #include #include using namespace std; int n,m,p; int num[16],vis[8192]; struct NODE { int dig,r,pre; }Q[8192]; void print(int x) { if(x!=-1){ print(Q[x].pre); printf("%d",

sepNINE的专栏 559

POJ 1465

BFS可解此题,但是必须要剪枝,考虑

Explorers 914

poj 1465

题意是: 给出一个 0 - 4999 的数 N  ,在给出 M 个0-9的数,判断这M个数字能不能构成一个数是N的倍数,如果有输出最小的,如果没有输出0。 此题用BFS 。。 这个题好在 用 余数判重剪枝。。  BFS  如果不加以剪枝,一定会搜索的情况会很庞大。所以应该用余数判重 。    为什么可以用余数判重?        A=a*N +e 即A%N =e

wode的专栏 820

POJ ——1465(宽度搜索)

题目链接:http://poj.org/problem?id=1465 源代码: #include #include #include using namespace std; int m,n; int flag[5050]; int a[5000]; struct Que { int digite; int mod; int pre; }queue[5000]

luoshenzhisi 562

poj 1465

<br /> program that, given a natural number N between 0 and 4999 (inclusively), and M distinct decimal digits X1,X2..XM (at least one), finds the smallest strictly positive multiple of N that has no other digits besides X1,X2..XM (if such a multiple exists

hqd_acm的专栏 2012

POJ-1465 Multiple

Multiple Time Limit: 1000MS   Memory Limit: 32768K   Description a program that, given a natural number N between 0 and 4999 (inclusively), and M distinct decimal digits

JSure的代码库 1095

poj1465剪枝广搜

题意:找到数aim的一个最小整数倍数,对倍数的要求是这样的:倍数中只能出现给定的几个数字。 解法:广搜。本来暴力广搜是会超时的,但是这里有个很强的剪枝,那就是在搜索中,如果数A余aim的值在之前已经出现过了的话,就没有再将其搜下去的意义了。           因为如果B%aim等于A%aim,且B 代码:#include #include #include #include usi

xiefubao的专栏 1197

POJ 1465 Multiple BFS

上来一看只会暴力,网上看了看资料,知道了还有一个剪枝 假设A,B对于X的余数相同 那么 (10*A+d[i])%x  = (10*B+d[i])%x ,所以只有当余数没出现过的情况下才加入到搜索的队列中来 另外还有一个问题,就是可能是最后的答案出现很庞大的位数,所以要用指针,这里我是用数组模拟。 还有就是单独处理N=0的情况 ,RE了好几次 #include #include

1292765944的专栏 1133
上一篇: zoj2913 Bus Pass
下一篇: poj1324 Holedox Moving
捡石子的小孩
博客等级 码龄14年 51粉丝 117原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值