codeforces 577B B. Modulo Sum(背包+dp)

基于MATLAB的太阳能光伏电力仿真,模拟每日太阳能发电,可视化功率曲线,并通过数值积分计算总能量输出。.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

参考
http://blog.youkuaiyun.com/loveyou11111111/article/details/48595091
和
http://blog.youkuaiyun.com/qq_24451605/article/details/48625131
定义状态dp[i][j]代表利用前i个数是否能够得到对m取模得j。
转移的过程采取背包的方法,很水
但是直接做一定会超时,O(n⋅m)
利用鸽巢定理可以知道,当n>m时,有n个数便有n个前缀和,而n%m只有m-1个值,所以至少有两个余数相同的前缀和,那么便能够得到一个连续的子序列满足题设条件,所以n>m的情况特判,复杂度就会优化为O(m⋅m)

题目大意:

给出n个数,求是否存在一个子集,这个子集中的数的和能够整除m
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
#define MAX 1007

using namespace std;

int n,m;
int a[MAX*MAX];
int dp[MAX][MAX];

int main ( )
{
    scanf ( "%d%d" , &n , &m );
    for ( int i = 1 ; i <= n ; i++ )
        scanf ( "%d" , &a[i] );
    if ( n > m )
    {
        puts ("YES" );
        return 0;
    }
    memset ( dp , 0 , sizeof ( dp ) );
    dp[0][0] = 1;
    bool flag = false;
    for ( int i = 1 ; i <= n ; i++ )
        for ( int j = m-1; j >= 0; j-- )
        {
            int x = ((j-a[i])%m+m)%m;
            if ( dp[i-1][x] )
            {
                dp[i][j] = 1;
                if ( j == 0 ) 
                    flag = true;//flag是在这里变,因为表示至少有一个值选了
            }
            if ( dp[i-1][j] )  dp[i][j] = 1;
        }
    if ( flag ) puts ("YES");
    else puts ("NO"); 
}


    #include <bits/stdc++.h>  
    using namespace std;  
    int dp[1010][1010], a[100010], n, m;  
    int main()  
    {  
        scanf("%d%d",&n,&m);  
        for (int i = 1; i <= n; i ++) {  
            scanf("%d",&a[i]);  
            a[i] %= m;  
        }  
        if (n > m) {  
            printf("YES\n");  
            return 0;  
        }  
        for (int i = 0; i <= n; i ++)  
            dp[i][0] = true;  
        for (int i = 1; i <= n; i ++)  
            for (int j = 0; j <= m; j ++)  
                dp[i][j] = dp[i-1][j] || dp[i-1][(j + a[i]) % m];  
        printf("%s\n", dp[n][m] ? "YES" : "NO");  
       return 0;  
    }  
人脸识别签到考勤系统实战源码 这是一套可直接运行的人脸识别智能签到考勤系统,基于OpenCV YuNet人脸检测与SFace特征识别实现,全程本机运行,数据保存在本地SQLite,不上传任何服务器。配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、逐步骤操作截图和答辩PPT讲解。 系统围绕五个功能模块展开:人脸注册支持照片批量导入并提取特征入库;识别签到支持照片或摄像头两种方式,实时框出人脸并标注姓名、相似度与考勤状态;考勤规则引擎按config.py里配置的上下班时间与宽限分钟,自动判定迟到、早退、缺勤;Tkinter管理面板完成人员管理、流水查询与月度汇总;最后通过openpyxl一键导出整月考勤矩阵,正常绿、迟到黄、缺勤红,Excel打开即用。 选型上特意选了YuNet+SFace路线:纯pip安装免编译,CPU单帧识别不到100ms,两个ONNX模型共约37MB,出自OpenCV官方模型仓库,毕设报告引用有据可查。教程第7章整理了16条Windows下真实踩过的报错及排查方法,第8章给出换模型、换人脸、加功能的二次开发路径。 适合做计算机视觉方向毕设或课程设计的学生,也适合想给班级、实验室、小团队搭一套本地签到工具的Python学习者。运行环境为Python 3.9以上、Windows 10/11,不需要GPU。 使用时先pip install -r requirements.txt装齐依赖,再运行download_data.py下载模型,最后启动main.py即可进入图形界面;命令行register、recognize、report子命令也可脱离界面单独调用。 立即下载

相关推荐

【电力负荷预测】项目介绍 MATLAB实现基于BO-Transformer-LSTM贝叶斯优化算法(BO)优化Transformer-LSTM组合模型进行居民用户多步电力负荷预测(含模型描述及部分示例

内容概要:本文介绍了一个基于BO-Transformer-LSTM的组合模型,用于实现居民用户多步电力负荷预测的完整项目实例。该模型融合Transformer的全局注意力机制与LSTM的局部时序记忆能力,构建能够捕捉长时依赖与周期性特征的深度学习架构,并引入贝叶斯优化(BO)自动搜索最优超参数组合,提升预测精度与训练效率。项目涵盖从原始数据清洗、特征工程、滑动窗口样本构建、模型设计到超参数优化、反归一化及多步误差评估的全流程,强调时间顺序划分以防止信息泄露,并通过周期编码、外生变量融合等方式增强数据表达能力。文中提供了详细的MATLAB代码示例,包括数据预处理、网络搭建、贝叶斯优化配置和预测结果评估等关键步骤。 适合人群:具备一定机器学习和时间序列分析基础,熟悉MATLAB编程环境,从事电力系统预测、智能电网、负荷管理等相关领域的研究人员、工程师及研究生。 使用场景及目标:①应用于居民级或多用户聚合负荷的短期至中期多步预测(如未来24小时);②服务于配电系统运行调度、需求响应基线设定、家庭能源管理系统优化、分布式能源协调控制等实际工程场景;③为科研提供可复现的深度学习+贝叶斯优化的技术路线参考。 阅读建议:此资源以实际项目为导向,建议读者结合提供的代码逐步实现并调试模型,重点关注数据质量控制、时间特征编码、组合网络结构设计与贝叶斯优化稳定性之间的协同关系,在实践中深入理解多步预测中的误差累积机制与超参数敏感性问题。

CodeForces - 577B Modulo Sum

Description: 给出n个数,求是否存在一个非空子集,这个子集中的数的和能够被m整除 Input 第一行输入n,m。(1 <= n <= 1e6,2 <= m <= 1e3) 第二行输入n个数,保证每个数都大于等于0,小于等于1e9。 Output 若存在答案输出YES,否则输出NO Examples Input 3 5 1 2 3 Outp...

邵光亮的博客 802

国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

CodeForces - 577B Modulo Sum(鸽巢原理+背包DP)

题目: 思路分析: 根据鸽笼原理来看 n大于m时候一定可以 然后可以利用dp来干 dp i j 代表前i个数 mod m为j的情况是否存在要看 前面是否存在 ((j-ai)%modm+m)modm是否存在 代码实现: /* *@Author: GuoJinlong *@Language: C++ */ //#include <bits/stdc++.h> /* * __

m0_57006708的博客 446

PotPlayer自用皮肤

自用 PotPlayer 皮肤,仅微调了字体大小与颜色,是按个人习惯调整,未做适配性调整。

2-shell及常用命令-续.pdf

2-shell及常用命令-续.pdf

CodeForces - 577B Modulo Sum(鸽巢原理+背包DP)

You are given a sequence of numbers a1, a2, …, an, and a number m. Check if it is possible to choose a non-empty subsequence aij such that the sum of numbers in this subsequence is divisible by m. Input The first line contains two numbers, n and m (1 ≤ n ≤

qq_42479630的博客 378

第7.1章:StarRocks性能调优——查询分析

第7.1章:StarRocks性能调优——查询分析

爱吃辣条的博客 6476

Codeforces 577B Modulo Sum 【多重背包】

题目链接:Codeforces 577B Modulo Sum B. Modulo Sum time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output You are given a sequence of numbers a1, a2

世界很大 863

Ubuntu16.04下禁用scp、sftp和winscp

在上一篇博文《Ubuntu16.04 搭建FTP服务器,设置用户权限为只许上传、禁止下载和删除》中,我讲述了Ubuntu16.04下配置FTP,并且设定用户权限为只能上传数据,禁止下载和删除数据。这算在FTP层面封堵了服务器数据泄露的途径。 但是,Ubuntu系统的scp和sftp还是起作用的,理论上只要能用本地机器ping通服务器,就可以用scp和sftp下载数据,这还是存在数据泄露可能的,所...

HPC&Geophysics攻城狮 5736

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇 文章目录Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇前言一、数据库的安装前准备,前提是没有安装过!!!二、仅安装数据库软件(数据库运行环境)三、添加数据库实例四、设置监听程序,让数据库可以通过网络访问五、为目标数据库设置网名总结 前言 如果需要安装包:联系我看到会给你链接,因为现在官网已经不提供10g,11g的安装包了,在网盘保存望悉知(回复不会很及时,下班看到会回复敬请谅解)。 提示:以下

zhx__的博客 5630

CodeForces - 577B Modulo Sum(dp+bitset优化)

题目链接:点击查看 题目大意:给出一个长度为 n 的数列,现在问能否选出一个子序列,满足其累加之和可以整除 m 题目分析:可以当做背包去思考,dpi,jdp_{i,j}dpi,j​代表的是选了前 i 个数后是否可以组合出累加之和对 m 取余等于 j 的数,那么答案显然就是看一下 dpn,mdp_{n,m}dpn,m​ 是否为 1 即可 不过时空复杂度都是 n * m 级别的,因为是 01 背包,所以可以将空间复杂度优化掉一维,到此为止分支出了两种做法: 因为 dp 数组只有 0 或 1 两种状态,所以不难想

Falcon的博客 1526

时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测

时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测 目录时间序列预测 | Python实现ARIMAX和VARMAX时间序列数据预测基本介绍ARIMAXVARVARMAVARMAXSESHWES参考资料 基本介绍 本文介绍ARIMAX、VAR、VARMA和VARMAX基本概念及其Python程序设计。 ARIMAX 具有外源回归量的自回归整合移动平均值(ARIMAX)是 ARIMA 模型的扩展,其还包括外生变量的建模。 外生变量也称为协变量,可以被认为是并行输入序列,其在与

前程算法屋的博客 6688

【CodeForces 577B】 Modulo Sum 鸽巢(抽屉)原理 DP

You are given a sequence of numbers a1, a2, …, an, and a number m. Check if it is possible to choose a non-empty subsequence aij such that the sum of numbers in this subsequence is divisible by m. Input The first line contains two numbers, n and m (1 ≤ n ≤

待到山花烂漫时 527

【Bluetooth|蓝牙开发】二、蓝牙开发入门

蓝牙,是一种利用低功率无线电,支持设备短距离通信的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换,蓝牙工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段,使用IEEE802.11协议。

Donge's Blog 1万+

实战避坑:基恩士KV8000 PLC与C#上位机链路通讯全流程实现(含ST代码+上位机源码)

本文详细讲解了基恩士KV8000 PLC与C#上位机的TCP链路通讯实现,从PLC端的ST代码编写、通讯配置,到上位机的通讯类封装、界面实现,再到实战避坑和性能优化,提供了完整的可复用方案。该方案已在实际产线项目中验证,支持实时数据采集和控制指令下发,稳定性和可靠性满足工业场景需求。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1176

Codeforces 577B. Modulo Sum (数学 + DP)

Description You are given a sequence of numbers a 1, a 2, …, a n, and a number m. Check if it is possible to choose a non-empty subsequence a i j such that the sum of numbers in this subsequence is divisible by m. Input The first line contains two numbers,

chr1stopher 714

学Simulink——基于Simulink的PMSM直接转矩控制(DTC)与SVPWM对比

(如SVM-DTC),将一个控制周期Tc​分为两部分:前Ton​用有效矢量,后Toff​用零矢量,通过调节Ton​/Tc​减小脉动。:根据ψs​扇区(6个)、Te误差(±滞环带)、ψs​误差(±滞环带)选择8个基本电压矢量(6有效矢量+2零矢量)。:低速时需用电流模型(ψs​=Ls​is​+ψf​),高速时用电压模型(es​=ωψf​),避免纯积分漂移;:基于us​=Rs​is​+Ls​dtdis​​+es​(es​为反电动势),用电压模型估算ψs​;

MHD0815的博客 338

Codeforces 577B Modulo Sum 动态规划基础

B. Modulo Sum time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given a sequence of numbers a1, a2, ..., an, an

01的世界 1270

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Codeoforces 577B Modulo Sum (鸽巢定理+dp)

题目链接: 题意:给出n个数,冲中挑选若干个数加和,如果可以整除m则输出yes 思路:首先有一个数学定理:  设s1=a1+a2+a3+……+al,s2=a1+……+al+al+1+al+2+……ar,                                               若s2%m = s1%m  ->  s2%m - s1%m  ->  (s2 -

csdn364988181的博客 451

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

dp+抽屉原理 codeforces577b--Modulo Sum、swjtuoj2383--Music Problem

思路与代码均为借鉴:http://www.cnblogs.com/qzqzgfy/p/5621693.html! 题目链接:http://codeforces.com/problemset/problem/577/B 本题用到的一个余数性质:(a+b)%m==(a%m+b%m)%m; 题意:输入n、m,序列中包含n个整数,问是否能够找到一个子序列的和使得整除m 思路:根据上面提到的余数

Hi_jiaxinwei的博客 582

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Codeforces Round #319 (Div. 2) 577B Modulo Sum(dp)

B. Modulo Sum time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given a sequence of numbers a1, a2, .

GKHack's Blog 1134

Codeforces Codeforces Round #319 (Div. 2) B. Modulo Sum 背包dp

B. Modulo Sum Time Limit: 1 Sec   Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/577/problem/B Description You are given a sequence of numbers a1, a2, ..., an, and a...

weixin_34129696的博客 117
上一篇: Codeforces Round #412 D. Dynamic Problem Scoring (枚举 + 贪心)
下一篇: Educational Codeforces Round 28 C 降低复杂度的方式
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值