Codeforces 543A. Writing Code DP

Android 集成 Google 与 Facebook 第三方登录实战详解(2024版) 本文详细介绍了2024年Android应用集成Google与Facebook第三方登录的完整实战指南。通过分步教程和代码示例,帮助开发者快速实现一键登录功能,提升用户体验和注册转化率,同时涵盖隐私合规和常见错误处理的最佳实践。 阅读详情
 Writing CodeTime Limit:3000MS    Memory Limit:262144KB    64bit IO Format:%I64d & %I64u
 
 

Description

Programmers working on a large project have just received a task to write exactly m lines of code. There are n programmers working on a project, the i-th of them makes exactly ai bugs in every line of code that he writes.

Let's call a sequence of non-negative integers v1, v2, ..., vn a plan, if v1 + v2 + ... + vn = m. The programmers follow the plan like that: in the beginning the first programmer writes the first v1 lines of the given task, then the second programmer writes v2 more lines of the given task, and so on. In the end, the last programmer writes the remaining lines of the code. Let's call a plan good, if all the written lines of the task contain at most b bugs in total.

Your task is to determine how many distinct good plans are there. As the number of plans can be large, print the remainder of this number modulo given positive integer mod.

Input

The first line contains four integers n, m, b, mod (1 ≤ n, m ≤ 500, 0 ≤ b ≤ 500; 1 ≤ mod ≤ 109 + 7) — the number of programmers, the number of lines of code in the task, the maximum total number of bugs respectively and the modulo you should use when printing the answer.

The next line contains n space-separated integers a1, a2, ..., an (0 ≤ ai ≤ 500) — the number of bugs per line for each programmer.

Output

Print a single integer — the answer to the problem modulo mod.

Sample Input

Input
3 3 3 100
1 1 1
Output
10
Input
3 6 5 1000000007
1 2 3
Output
0
Input
3 5 6 11
1 2 1
Output
0


题意:这题的题意真的是相当难懂,完全没有看懂,而且网上也没有找到题意解释,于是看了看别人的代码,总算知道了这道题是要我们干嘛了。
有n个程序,这n个程序运作产生m行代码,但是每个程序产生的BUG总和不能超过b,给出每个程序产生的代码,每行会产生ai个BUG,问在总BUG不超过b的情况下,我们有几种选择方法
思路:看懂了题意之后就是一个完全背包题了

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int n,m,b,mod;
int a[505],dp[505][505];
int main()
{
    while(~scanf("%d %d %d %d",&n,&m,&b,&mod))
    {
        for(int i=1;i<=n;i++) scanf("%d",&a[i]);
        memset(dp,0,sizeof(dp));
        dp[0][0]=1;
        for(int i=1;i<=n;i++)
        {
            for(int j=1;j<=m;j++){
                for(int k=a[i];k<=b;k++){
                    dp[j][k]+=dp[j-1][k-a[i]];
                    dp[j][k]%=mod;
                }
            }
        }
        int sum=0;
        for(int i=0;i<=b;i++)
        {
            sum+=dp[m][i];
            sum%=mod;
        }
        printf("%d\n",sum);
    }
    return 0;
}


Python小白避坑指南:用Ursina做3D图形,Entity的scale和color参数到底怎么调才不出错? 本文详细解析了Python Ursina引擎中Entity对象的scale和color参数调优技巧,帮助3D图形编程初学者避开常见陷阱。通过对比实验和典型场景分析,深入讲解三种缩放方式的区别、颜色定义的四种方法,以及参数组合的协同效应,助力开发者精准控制3D图形表现。 阅读详情

相关推荐

保姆级教程:用STM32CubeMX配置GD32的CAN总线(含异常处理)

本文提供了一份详细的STM32CubeMX配置GD32 CAN总线开发指南,涵盖从HAL库移植到异常处理的全过程。重点解析GD32与STM32在CAN总线初始化、报文发送优先级处理等方面的关键差异,并提供优化代码维护与版本控制的实用策略,帮助开发者高效完成项目迁移。

onion的博客 828

codeforces 543A 完全背包

Writing Code 安排n个人写m行代码,每个人每行会出a[i]个bug,求最多出现b个bug的方案数。 一个二维的完全背包,每个人有两个状态:写j行代码出k个bug dp[i][j][k] 前i个程序员写钱j行出现k个bug的方案数。 dp[i][j][k] = dp[i][j-1][k-a[i]] + dp[i-1][j][k]; 注意这里数组会超内存,需要用滚动数组。 #include us

xuelanghu407 1060

MLX90640 热成像 STM32

MLX90640 热成像

zhaocundang's blog 5005

Codeforces 543 A Writing Code 计数DP

http://codeforces.com/problemset/problem/543/A 题目大意:n个人,一共要写m行程序,每个程序员每行出现的bug数为ai,要求整个程序出现的bug数不超过b的方案数. 题目分析:简单的计数DP,01背包变形。需要记录的是写到第i行时错误的bug数为j的方案。所以定义二维数组dp[i][j]。转移与01背包类似。具体见代码;初始化d

WKLL_ 1015

看我如何用kali实时截获隔壁"小姐姐"的上网隐私(结尾有彩蛋)

看我如何用kali实时截获隔壁&amp;amp;amp;quot;小姐姐&amp;amp;amp;quot;的手机图片等信息(结尾有彩蛋哦) 首先圈下重点:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或...

SoulCat 2万+

解锁 Bootloader 不再难!HyperOS澎湃系统小米与红米手机通用

必要时,可以在工具右上角安装驱动模块,手动安装驱动。解决方法:确保手机升级到最新稳定版,登录同一个小米账号,并在。新机型解锁时需要等待一段时间,通常为 7 天。如果账号安全评分较低,解锁等待时间会更长。如果解锁失败提示权限不足,说明账号存在安全问题。出现这个错误时,通常是因为网络不稳定。如果解锁次数已满,需要等到下个月。解锁后,手机会重启,首次开机会稍微慢一些,等耐心等待即可。按钮,开始解锁过程,注意:解锁会清除手机内所有数据。7次,开启开发者选项。,右键解压到指定文件夹。,使用小米账号登录。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 7217

Codeforces Round #302 (Div. 2)C (完全背包)

C. Writing Code time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output Programmers working on a large project have

u013268685的专栏(有一种幸福叫AC,有一种期待叫AK) 1185

OpenClaw实现多agent协作研究

本文介绍了如何构建多agent协作系统,通过飞书机器人实现任务分配与执行。系统包含三个agent:research_leader(总调度)、research_content(内容生成)和research_review(内容审核)。详细说明了agent配置方法(包括创建命令、权限设置)、飞书channel绑定方式,以及通过共享目录和会话机制实现协作。最后展示了应用示例,用户只需向leader机器人下达任务,系统即可自动完成内容生成和审核的全流程。

hhue2007的专栏 616

CodeForces 543A - Writing Code DP 完全背包

有n个程序,这n个程序运作产生m行代码,但是每个程序产生的BUG总和不能超过b, 给出每个程序产生的代码,每行会产生ai个BUG,问在总BUG不超过b的情况下, 我们有几种选择方法思路:看懂了题意之后就是一个完全背包题了 定义dp[ i ][ j ][ k ] 表示前 i 个程序员,已经写了 j 行代码, 已经产生了 k 个 bugs 。 根据题意,得知第 i 个程序员会写 r 行代码,...

weixin_30748995的博客 190

对halcon形状匹配算法的一点分析

基于Intel VTune Profiler对halcon形状匹配算法的一点分析

manuoo的专栏 566

【OpenClaw企业级智能体实战】第04篇:OpenClaw成本优化实战——Token消耗降96%!claude-mem+OpenViking从入门到精通

OpenClaw作为企业级智能体框架,凭借强大的自动化能力成为企业数字化转型的热门工具,但原生机制导致的上下文冗余问题,让众多用户面临“Token消耗失控”的困境——单周账单数千元的案例屡见不鲜。本文基于阿里云实测数据与开源工具官方文档,先深度拆解OpenClaw成本黑洞的核心成因(记忆碎片化、Token指数级膨胀),再系统讲解两款核心优化工具(claude-mem单Agent记忆管理、OpenViking多Agent集群底座)的底层原理、算法架构与实现逻辑,提供从环境搭建、工具集成、参数调优到安全部署

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 702

Codeforce 543A(递推优化)

链接:点击打开链接 题意:有n个程序员,要写m行代码,第i个人写一行代码必定会出现ai个bug,每个人按顺序选择写几行代码,可以不写,问恰好写m行代码并且出现的bug数目不大于b的种数 代码: #include #include #include #include using namespace std; long long a[505],dp[2][505][505];

stay_accept的专栏 457

S7-200SMART 中如何实现单按钮启停功能(两种方法)?

S7-200SMART 中如何实现单按钮启停功能(两种方法),Toggle库指令,状态翻转

Robot_PLC_HMI_Automation 1万+

[CodeForces 543A]Writing Code[DP]

题目链接:[CodeForces 543A]Writing Code[DP] 题意分析: n个程序员合作写m行代码,第i个程序员每次写一行会产生a[i]个bug,程序员顺序工作,1工作之后2工作,如此类推,现在要求总bug数不得超过b。问:写完m行代码,总bug数不超过b的方案有多少种? 解题思路: 首先我们试着定义一个状态,由于程序员顺序工作,那么我们定义dp[i][j]为写了i行代码,

闲停 712

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

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

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

Writing Code - CodeForces 543 A dp

Writing Code time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output Programmers working on a large project have ju

提比的强行AC 721

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Codeforces 543A Writing Code 【滚动数组优化dp】

A. Writing Code time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output Programmers working on a large project have

世界很大 596

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

codeforces 543A Writing Code (dp)

一开始想到的dp: f [ i ][ j ][ k ]表示前i个人打了j行有k个错误的方案数,那么转移方程为:f [ i ][ j ][ k ]=f [ i-1][ j-h ][ k-a[i]*h ] (0 很明显超时+MLE。 这时会发现转移只与f [ i-1 ]有关,可以通过降一维来优化,删去第一维。 f [ j ][ k ]=f [ j ][ k ]+f [ j-1 ][ k-a[i]

KatnissJ的博客 816

CodeForces 543A Writing Code(DP)

题目链接:http://codeforces.com/problemset/problem/543/A 题意:安排n个人写m行代码,每人每行会出现a[i]个bug,问最多出现k个bug的方案数 思路:令dp(i, j, k)表示前i个人写j行代码未超过k个的方案数,然后就可以类似背包进行转移并降掉一维的空间复杂度 #include <cstdio> #i...

Tongqi 643

codeforces 543A A. Writing Code(完全背包优化dp )

题目连接:codeforces 543A题目大意:n个程序员写m行代码,第i个程序员写第i行代码会出现viv_i个bug,问写完这m行代码bugs的数量不超过b的方案数。题目分析:首先容易想到三位的dp: - 定义dp[i][j][k]为前i个程序员写完j行代码出现k个bugs的方案数。 - dp[i][j][k]=∑t=0idp[i−1][j−t][k−t⋅ai]dp[i][j][k] = \

llin-黎辰 1100

[Codeforces 543A] Writing Code (完全背包DP)

Codeforces - 543A NN 个人写共计 MM 行代码,第 ii 个人每写一行代码就有 aia_i 个bug 问使得 MM 行代码都被写完,并且总 bug不超过 BB 的方案数 背包DP…… 太久没写了已经不会写了…… dp[n][m][b]表示当前为第 n个人,还剩 m行代码,b个可容许bug 然后无须枚举当前人写了几行代码,只需要从大到小枚举 m 然后把状态还是更新第

MisDeer's blog 388

CodeForces 543A Writing Code(dp)

题意:告诉你每个程序员写一行代码会产生多少bug,问你n个程序员写m行代码 bug数不超过b的分派方案有多少个。 一开始想到的状态就是dp[i][j][k]表示前i个程序员写了j行代码,bug 不超过k的方案,发现转移是三方的,其实这个状态时刻一改变一下的, 因为最后的程序员可以写,也可以不写,不管写了几行,所以状态转移就只 需要看最后的那个程序员是否写了就行,另外可以滚动数组。 dp[i][j][

只玩三国的程序猿的专栏 536

Codeforces Round #302 (Div. 1) 543A Writing Code(dp)

A. Writing Code time limit per test 3 seconds memory limit per test 256 megabytes input standard input output standard output Programmers working on a large project have

GKHack's Blog 1072

codeforces 543A Writing Code(dp降维优化,完全背包思想)

题意: 。。。 思路: 首先考虑最直接的三维方程 dp(i, j, k) 表示前i个程序员写了j行代码bug不超过k dp(i,j,k)=∑dp(i−1,j−r,k−r∗a[i]),第i个程序员写了r行代码dp(i, j, k) = \sum{dp(i-1, j - r, k - r * a[i])}, 第i个程序员写了r行代码 我们可以换种视角优化这个方程 1)第i个程序员没写代码

slowlight93的专栏 1146

!CodeForces 543A Writing Code --DP--(三维dp,滚动数组)

题意:n个程序员一起写m行代码,第i个程序员每写一行有a[i]个bug,求总bug不超过b的分配方案有多少种 分析:这题很像完全背包,不过求的不是最大/最小bug数,求的是bug数小于上限的分配方案。所以这题要用三维dp dp[i][j][k]表示前i个个程序员总共写了j行代码产生了k个bug时的plan数,这题有两种转移:1)第i个程序员再写一行;2)换第i+1号程序员写 所以方程:dp[

关于学习本身 1234

CodeForces - 543A Writing Code(背包问题 + dp + 滚动数组)

题目 题意 有 nnn 个程序猿要写 mmm 行代码,第 iii 个程序猿每行会出现 viviv_i 个 bugbugbug ,问最后总 bugbugbug 数不超过 bbb 的码代码方案数有多少种,答案对 modmodmod 取模 其中,方案定义为,每个程序猿码代码的行数,如果两种方案中,存在一人所码代码行数两次不同,则认为是两种方案。 思路 如果我们独立的看待每行代码,定义 dp[k...

ShadowGhostH的博客 359

codefroces 543A Writing Code dp优化 完全背包

Programmers working on a large project have just received a task to write exactly m lines of code. There are n programmers working on a project, the i-th of them makes exactly ai bugs in every line of

黑码 556
上一篇: HDU 5410 CRB and His Birthday(01背包+完全背包)
下一篇: HDU 5418 Victor and World(状压dp、floy最短路)
hellohelloC
博客等级 码龄12年 15粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值