当前位置: 首页 > wzjs >正文

手机网站模板 怎样做顾问式营销

手机网站模板 怎样做,顾问式营销,网站效果图怎么做,诸暨市住房建设局网站题目描述 有这样一种数列 a1​,a2​,⋯an​&#xff0c;其中 a1​0&#xff0c;且对任意一项 ai​ 满足 ∣ai​−ai1​∣1&#xff08;1≤i<n&#xff09;。设 s∑i1n​ai​a1​a2​⋯an​&#xff0c;表示前 n 项之和。 现在给出数列长度 n 与数列前 n 项之和 s&#xff…

题目描述

有这样一种数列 a1​,a2​,⋯an​,其中 a1​=0,且对任意一项 ai​ 满足 ∣ai​−ai+1​∣=1(1≤i<n)。设 s=∑i=1n​ai​=a1​+a2​+⋯+an​,表示前 n 项之和。

现在给出数列长度 n 与数列前 n 项之和 s,要求:

输出满足条件的数列的总数对 264 取模后的结果。

输出满足条件的 100 个数列(如果不满 100 个就全部输出)。

输入格式

输入只有一行两个整数,分别表示数列长度 n 与数列之和 s。

输出格式

本题存在 Special Judge

在第一行输出一行一个整数 t,表示满足条件的数列总数对 264 取模后的结果。

接下来若干行,每行 n 个整数,表示一个数列。

输入输出样例

输入 #1复制

4 0

输出 #1复制

2
0 -1 0 1
0 1 0 -1

题解:

假如每一个数字都比前面的一个数字大 1,即数列为 0,1,2,3,4,5,…,n−1,那么这个数列的和为 sum=2n(n−1)​,我们发现 n≤100,那么 sum≤4950,所以如果题目要求的 s>sum,那么一定无解,因为这个数列再大也大不过 sum,更不可能到达 s 了。

反过来,如果一个数字比前面一个数字小 1,即数列为 0,−1,−2,−3,−4,−5,…,−(n−1),那么这个数列的和为 sum=−2n(n−1)​,我们发现 n≤100,那么 sum≥−4950。

所以 −263≤s≤263 是吓你的,真正有用的 −4950≤s≤4950。


接下来,我们来探究一个位子 u 上的数字变化对数组的和 sum 的影响。

如果 au​=au−1​+1,现在改成 au​=au−1​−1,那么从 u 开始的每一个数字都会减去 2。

那么数组的和 sum 就会减去 2(n−u+1)。


那么,我们可以想到让每一个数字都等于前面一个数字 +1,那么和就是 2n(n−1)​。

但是我们想让其变为题目要求的 s,那么要减去的数字就是 k=2n(n−1)​−s。

那么我们只能将有些数字间的 +1,换成 −1 才能达到减去 k 的目的。

那么根据前面对数字间关系的讨论,我们知道,我们要凑出很多个 i,使这些 i 对应的 2(n−i+1) 加起来等于 k 就行了,即让所有的 n−i+1 加起来等于 2k​ 即可。

当然了,如果 k 是奇数,那么一定无解。


我们考虑 DP,设 fi,j​ 表示已经凑到第 i 个数字,和为 j 的方案数。

开始时:f1,0​=1,

目标:fn,2k​​。

我们可以不选择第 i 个数字,fi,j​=fi−1,j​。

我们可以选择第 i 个数字,即在原有基础上加上 (n−i+1),fi,j​=fi−1,j−(n−i+1)​。

代码:

#include <bits/stdc++.h>using namespace std;
using i64 = long long;
using ull = unsigned long long;const int N = 1010, M = 5010;ull f[N][M];int n, k;
i64 s;
int cnt;
int m[N];void dfs(int u, int sum) {if (sum > (k >> 1)) return;if (u > n) {if (sum == (k >> 1)) {cnt++;i64 tmp = 0;for (int i = 1; i <= n; i++) {tmp += m[i];cout << tmp << ' ';}cout << '\n';}if (cnt >= 100) {exit(0);}return;}m[u] = -1;dfs(u + 1, sum + (n - u + 1));m[u] = 1;dfs(u + 1, sum);
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);cin >> n >> s;if (s > n * (n - 1) / 2) {cout << 0 << '\n';return 0;}k = n * (n - 1) / 2 - s;if (k & 1) {cout << 0 << '\n';return 0;}f[1][0] = 1;for (i64 i = 2; i <= n; i++) {i64 x = (n - i + 1);memcpy(f[i], f[i - 1], sizeof(f[i]));for (int j = x; j < M; j++) {f[i][j] = f[i][j] + f[i - 1][j - x];}}cout << f[n][k >> 1] << '\n';dfs(2, 0);return 0;
}

 

 

http://www.dtcms.com/wzjs/145970.html

相关文章:

  • 如何通过做网站赚钱品牌策略
  • 做网站 pc端与手机端兼容电商中seo是什么意思
  • 凡科轻站网络营销具有哪些优势和吸引力
  • 淘宝上做网站 源代码怎么给你百度账号人工客服
  • 网站和网业的关系培训心得总结怎么写
  • 郑州住房和城乡建设官网南宁百度seo
  • 用java做网站好吗宁波谷歌seo
  • 最专业网站建设公搜索引擎seo是什么意思
  • 芜湖市建设路小学网站西部数码域名注册
  • 石家庄专业网站设计做百度推广怎么做才能有电话
  • 酒店网站规划建设方案书seo自动优化软件下载
  • 网易邮箱用企业邮箱账号怎么登录郑州网站推广优化
  • 广州网站制作网站雅思培训机构哪家好机构排名
  • 廊坊教育云网站建设如何免费创建自己的平台
  • 牡丹花网站建设策划书百度收录好的免费网站
  • 网站宣传册怎么做网络技术培训
  • 专门做衣服特卖的网站seo关键词优化经验技巧
  • 东营两学一做网站今天发生的重大新闻5条
  • 网网站建设站建设营销策略的思路
  • 北京66中网站做的不怎么样呀怎样建网站?
  • 民政府公众信息网站建设百度权重是怎么来的
  • 天津做网站的公司怎么样百度风云搜索榜
  • 二手房在哪个网站做合同外贸独立站怎么做
  • 电商企业网站建设的一般要素有哪些6百度认证
  • 网站开发哈尔滨网站开发公司电话二手交易平台
  • 网站是怎样建立的流程是什么google网页搜索
  • 工程建设网站导航图建站宝盒
  • 自然堂网站建设策划书为什么不建议去外包公司上班
  • 个人网站设计论文摘要cba目前排名
  • 用vs做的网站怎么打开企业营销咨询