51nod3173 小朋友吃糖果

article/2025/10/18 5:57:45

3173 小朋友吃糖果

n种糖果(编号1n),第i号糖果有A_{i}颗,现需要将所有糖果分给两个小朋友,要求两个小朋友得到糖果数量相等,问有多少种分法?
(可以不必将所有糖果分完。如全部都不分,每人的糖果数量为0,也算是一种分法)

输入

第一行,一个整数n,表示糖果种类数量
第二行,n个空格间隔的整数,表示每种糖果的数量

输出

一行,一个整数,表示总的方案数,答案 mod 1e9+7后再输出。

数据范围

10% 2 <= n,ai <= 10
30% 2 <= n,ai <= 30
60% 2 <= n,ai <= 80
100% 2 <= n,ai <= 200

输入样例

样例输入 1
1
2
样例输入 2
2
1 2

输出样例

输出样例1:
2
输出样例2:
4

这里不给解析,直接放代码:

#include<bits/stdc++.h>
#define ll long long
#define N 123456
using namespace std;
ll F[N],S[2][N],A[N],n,m,p,mod=1e9+7;
int main()
{ll i,j,k,t;scanf("%lld",&n);for(i=1;i<=n;i++)scanf("%lld",&A[i]),m+=A[i];F[m]=1;p=m*2;for(i=1;i<=n;i++){S[0][0]=F[0];S[1][0]=0;for(j=1;j<=p;j++)//先处理出前缀和{k=j&1;S[k][j]=(S[k][j-1]+F[j])%mod;S[k^1][j]=S[k^1][j-1];}for(j=0;j<=A[i];j++)F[0]=(F[0]+F[j]*((A[i]-j>>1)+1))%mod;//先算出F[0]for(j=1;j<=p;j++)//递推{k=(A[i]+j)&1;//判断需要的前缀和数组的奇偶F[j]=(F[j-1]+S[k][j+A[i]]-S[k][j-1])%mod;if(j-A[i]-2<0)t=0;else t=S[k^1][j-A[i]-2];F[j]=(F[j]-S[k^1][j-1]+t)%mod;}}cout<<(F[m]+mod)%mod;return 0;
}


http://chatgpt.dhexx.cn/article/39wLg0MK.shtml

相关文章

小蓝吃糖果问题的解答

目录 一、题目描述 题目描述 输入描述 输出描述 二、代码示例 一、题目描述 题目描述 小蓝有 nn 种糖果&#xff0c;每种数量已知。 小蓝不喜欢连续 22 次吃同样的糖果。问有没有可行的吃糖方案。 输入描述 第一行是整数 n(0<n<1000000)n(0<n<1000000)。 …

【分糖果】

分糖果题目讲解 题目描述输入格式输出格式数据范围输入样例1&#xff1a;输出样例1&#xff1a;样例1解释&#xff1a; 输入样例2&#xff1a;输出样例2&#xff1a;输入样例3&#xff1a;输出样例3&#xff1a; C程序思路解析时间复杂度分析 题目描述 有 N N N 个盒子排成一…

hdu 1205 :吃糖果

鸽巢原理 1.把某种糖果看做隔板,如果某种糖果有n个,那么就有n1块区域,至少需要n-1块其他种糖果才能使得所有隔板不挨在一块..也就是说能吃完这种糖果.至少需要其他种类糖果n-1块..(鸽巢原理) 2.数量最多的糖果(隔板)可以构造最多的空间,如果这种糖果有maxn个....那么需要maxn-1…

RecyclerView局部刷新

在RecyclerView中&#xff0c;我们时常会用到局部刷新&#xff0c;我们大多数是使用&#xff1a;notifyItemChanged。 我在使用这个局部刷新过程中突然发现我有几个notifyItemChanged没有效果&#xff0c;我就在&#xff1a; onBindViewHolder(NonNull ViewHolder holder, in…

android局部动态刷新,RecyclerView的局部刷新爬坑之路简述

RecyclerView的局部刷新爬坑之路简述&#xff0c;实际上RecyclerView做局部刷新是非常容易的&#xff0c;其实就是使用好带payload参数的这个notifyItemRangeChanged方法&#xff0c;以及override带payload的这个onBindViewHolder方法&#xff0c;在onBindViewHolder中去刷新你…

RecyclerView局部刷新机制

之前在使用RecyclerView的遇到过一个问题&#xff0c;使用notifyItemChanged刷新数据的时候会出现重影或者闪烁的现象。 这个问题很容易出现&#xff0c;当我们的列表中有进度显示&#xff08;比如下载&#xff09;&#xff0c;这时候需要不停的更新进度&#xff0c;就需要使用…

jsp java局部刷新_jsp怎么实现局部刷新

jsp实现局部刷新的方法&#xff1a;首先创建一个处理ajax请求的jsp文件&#xff1b;然后设置输出信息的格式及字符集&#xff1b;最后利用JSP和ajax来实现局部页面刷新即可。 通过 AJAX&#xff0c;JavaScript 可使用 JavaScript 的 XMLHttpRequest 对象来直接与服务器进行通信…

bootstrap切换tab页局部刷新_AdminLTE实现局部刷新

前言 AdminLTE是一个基于boostrap的前端模板,里面集成了好多插件,可以说方便又臃肿,毕竟不是所有插件都用得到,。好不容易找到个喜欢的前端模板,无奈每次点击菜单都会整个页面刷新一次,网上找了半天也没找到一个喜欢的局部刷新的解决方法。只好自己去啃js了。由于修改了原…

java局部刷新_HTML页面局部刷新的实现代码

这篇文章主要介绍了HTML页面局部刷新的实现代码的相关资料&#xff0c;写的十分的全面细致&#xff0c;具有一定的参考价值&#xff0c;对此有需要的朋友可以参考学习下。如有不足之处&#xff0c;欢迎批评指正。 事件响应刷新&#xff1a;有请求才会刷新 1、通过JS HTML DOM或…

原生JS局部刷新

目录 使用XMLHttpRequest对象进行异步请求&#xff1a; 2.使用fetch API进行异步请求 3.使用事件监听器进行局部刷新 4.servlet实现img验证码局部刷新 依赖jar包 Servlet login.jsp 在原生JS中&#xff0c;可以使用以下几种方式实现局部刷新&#xff1a; 使用XMLHttpReques…

html局部刷新数据,局部刷新.html

&#xfeff;局部刷新 $axure.utils.getTransparentGifPath function() { return resources/images/transparent.gif; }; $axure.utils.getOtherPath function() { return resources/Other.html; }; $axure.utils.getReloadPath function() { return resources/reload.html;…

flutter 局部刷新

目的&#xff1a;局部刷新 效果&#xff1a;点击右下角刷新按钮后&#xff0c;对九宫格中的图片刷新状态 思路&#xff1a;两个方法 一、整个页面都刷新&#xff0c;局部组件有变化&#xff0c;用UniqueKey() 二、只针对局部组件刷新&#xff0c;用GlobalKey() 具体操作&…

什么是局部刷新

局部刷新 浏览器在展示数据时&#xff0c;此时在窗口既可以看到本次的响应数据&#xff0c;同时又可以看到浏览器内存原有数据。 局部刷新原理&#xff1a; 不由浏览器发送请求给服务端 浏览器委托浏览器内存中一个脚本对象代替浏览器发送请求 这个行为导致服务端直接将…

【PSFTP】Windows从Linux获取文件或目录

1、安装Putty Win10先安装Putty 官方下载地址&#xff1a;http://www.putty.be/latest.html 安装后&#xff0c;Win10运行PSFTP 2、登录Linux 提示使用open host.name连接服务器 psftp: no hostname specified; use "open host.name" to connect psftp>参考…

putty、pscp、psftp 使用教程

如何从安装了Windows的工作电脑连远程接到Linux服务器?其实有很多软件,比如 PuTTY、XShell、CRT、MobaXterm等等。不过还是 PuTTY最简单易用、无需安装、并且开源免费。PuTTY其实是一个软件套装,里边除了最常用的putty之外,还包含了像 pscp、psftp等可以用于文件传输的工具…

putty和psftp命令行参数

putty和psftp命令行参数 https://the.earth.li/~sgtatham/putty/latest/w32/putty.zip https://the.earth.li/~sgtatham/putty/latest/w64/putty.zip https://the.earth.li/~sgtatham/putty/latest/puttydoc.zip https://the.earth.li/~sgtatham/putty/latest/putty-0.72.tar.g…

psftp

2019独角兽企业重金招聘Python工程师标准>>> 当连接到远程计算机以后&#xff0c;使用以下命令&#xff1a; bye 结束 psftp 。 cd 改变远程服务器的目录。 chmod 改变远程服务器的文件或文件夹的权限及属性。 del 删除远程服务器上的文件。 dir …

linux psftp,使用PSFTP实现Windows、Linux之间的文件传输

安装PuTTY时自动安装了PSFTP 使用PSFTP可以实现Winodws、Linux之间的文件传输。 打开PSFTP&#xff0c;输入Linux的ip地址&#xff0c;输入要登录的用户名、密码 Windows向Linux传文件&#xff1a; put D:\jdk-8u241-linux-x64.rpm /root/jdk-8u241-linux-x64.rpm put 本地文件…

putty以及psftp的基本操作,使用方法等

1、putty登陆远程服务器 open之后进入登陆界面&#xff0c;输入用户名之后点击Enter&#xff0c;之后输入登陆密码&#xff08;界面不显示&#xff0c;输入正确后直接Enter就可以&#xff09; 进入之后的界面 之后就可以输入命令进行操作了 2、文件传输psftp&#xff1a; 运行…

PSFTP工具的使用教程

PSFTP&#xff1a;是Putty的SFTP客户端&#xff0c;可以通过SFTP协议在两台电脑之间的传输文件。它和 PSCP相比的优点在于可以与服务器进行交互&#xff0c;遍历服务器上的文件系统&#xff0c;在一个会话中上传或下载多个文件。而 PSCP 只能一次传输一个文件&#xff0c;传输完…