【JZOJ4786】小a的强迫症【数论,数学】

华为交换机链路聚合对接思科交换机链路聚合故障 2台华为交换机采用堆叠方式与思科交换机之间使用链路聚合,华为交换机与cisco交换机链路捆绑接口频繁UP/DOWN,业务中断。 阅读详情

题目大意:

题目链接:https://jzoj.net/senior/#main/show/4786
有 n n n种珠子,要求把这些珠子放在一条直线上,且第 i i i种珠子的最后一个的位置 l a s t i last_i lasti​满足 l a s t 1 &lt; l a s t 2 &lt; . . . &lt; l a s t n last_1&lt;last_2&lt;...&lt;last_n last1​<last2​<...<lastn​。求满足要求的方案数。


思路:

假设我们求完了前 i i i种珠子按要求摆放的方案数,现在要求第 i + 1 i+1 i+1种珠子的方案数。
设 s u m [ i − 1 ] sum[i-1] sum[i−1]表示前 i − 1 i-1 i−1种珠子的总个数,那么第 i i i种珠子的最后一个就应该放在这 s u m [ i − 1 ] sum[i-1] sum[i−1]个珠子后面,剩余的第 i i i种珠子就应该全部放在这颗珠子的前面。
在这里插入图片描述

那么如果总共有 a [ i ] a[i] a[i]个第 i i i种珠子,那么剩余的 a [ i ] − 1 a[i]-1 a[i]−1个珠子都要放在上图蓝色珠子的前面。
而放置的空隙总共是有 s u m [ i − 1 ] + 1 sum[i-1]+1 sum[i−1]+1个的(如下图)
在这里插入图片描述

A : A: A: 所以放置方案数是 s u m [ i − 1 ] a [ i ] − 1 sum[i-1]^{a[i]-1} sum[i−1]a[i]−1吗?

不是!
如果我们有 3 3 3个珠子要放,那么就有可能为以下6种情况( x − y x-y x−y表示第 x x x颗珠子放第 y y y个位置)

  • 1 − 2 , 2 − 5 , 3 − 6 1-2,2-5,3-6 1−2,2−5,3−6
  • 1 − 2 , 2 − 6 , 3 − 5 1-2,2-6,3-5 1−2,2−6,3−5
  • 1 − 5 , 2 − 2 , 3 − 6 1-5,2-2,3-6 1−5,2−2,3−6
  • . . . . . . ...... ......

而这6种情况实质上是一模一样的,这样就会计算重复的。

A : A: A: 所以放置方案数是 s u m [ i − 1 ] a [ i ] − 1 s u m [ i − 1 ] ! \frac{sum[i-1]^{a[i]-1}}{sum[i-1]!} sum[i−1]!sum[i−1]a[i]−1​吗?

依然不是。
虽然有一些排列方案会重复 s u m [ i − 1 ] ! sum[i-1]! sum[i−1]!次,但是也有一些方案重复的次数小于 s u m [ i − 1 ] ! sum[i-1]! sum[i−1]!,同时也有一些方案是不会重复的。
例如 1 − 3 , 2 − 3 , 3 − 3 1-3,2-3,3-3 1−3,2−3,3−3这种情况它就只会算一次。
很显然,这种计算是因为选择的位置本身的重复而导致的。例如上例选择的位置3就重复了,但是3,3,3的全排列只有3,3,3一种情况,所以就只会出现一次。
而 1 − 4 , 2 − 1 , 3 − 1 1-4,2-1,3-1 1−4,2−1,3−1就会出现3次,因为4,1,1的全排列有 ( 1 , 1 , 4 ) , ( 1 , 4 , 1 ) , ( 4 , 1 , 1 ) (1,1,4),(1,4,1),(4,1,1) (1,1,4),(1,4,1),(4,1,1)三种。

所以放置 a [ i ] − 1 a[i]-1 a[i]−1个珠子的方案数还需要分类讨论一下。

  • 如果 a [ i ] − 1 a[i]-1 a[i]−1个珠子位置各不相同,那么就相当于从 s u m [ i − 1 ] sum[i-1] sum[i−1]个空位种选择 a [ i ] − 1 a[i]-1 a[i]−1个的方案数,所以就是 C s u m [ i − 1 ] a [ i ] − 1 C^{a[i]-1}_{sum[i-1]} Csum[i−1]a[i]−1​
  • 如果 a [ i ] − 1 a[i]-1 a[i]−1个珠子位置有1个相同,那么就相当于从 s u m [ i − 1 ] sum[i-1] sum[i−1]个空位种选择 a [ i ] − 2 a[i]-2 a[i]−2个的方案数,但是这个相同的位置可能是选择的位置中的任意一个,所以就是 C s u m [ i − 1 ] a [ i ] − 2 × C a [ i ] − 2 1 C^{a[i]-2}_{sum[i-1]}\times C^{1}_{a[i]-2} Csum[i−1]a[i]−2​×Ca[i]−21​$**
  • 以此类推。

所以第 i i i中珠子的方案数是
∑ j = 2 a [ i ] − 1 C ( s u m [ i − 1 ] + 1 , j ) × C ( a [ i ] − 2 , j − 1 ) \sum^{a[i]-1}_{j=2} C(sum[i-1]+1,j)\times C(a[i]-2,j-1) j=2∑a[i]−1​C(sum[i−1]+1,j)×C(a[i]−2,j−1)

最终答案就是
∑ i = 2 n ∑ j = 2 a [ i ] − 1 C ( s u m [ i − 1 ] + 1 , j ) × C ( a [ i ] − 2 , j − 1 ) \sum^{n}_{i=2}\sum^{a[i]-1}_{j=2} C(sum[i-1]+1,j)\times C(a[i]-2,j-1) i=2∑n​j=2∑a[i]−1​C(sum[i−1]+1,j)×C(a[i]−2,j−1)

均摊思想得时间复杂度为 O ( ∑ i = 1 n a [ i ] ) O(\sum^{n}_{i=1} a[i]) O(∑i=1n​a[i])(即 O ( s u m [ n ] ) O(sum[n]) O(sum[n])),由于题目中说了所有珠子数量和小于 5 × 1 0 5 5\times 10^5 5×105,所以是可以过去的。

吐槽:这道题卡了我1.5h   woc \color{white}\texttt{吐槽:这道题卡了我1.5h woc} 吐槽:这道题卡了我1.5h woc


代码:

#include <cstdio>
using namespace std;
typedef long long ll;

const int N=100010,MOD=998244353;
ll a[N],sum[N],fac[N*5],inv[N*5],ans,s;
int n;

ll power(ll x,ll y)
{
	ll ans=1;
	while (y)
	{
		if (y&1) ans=ans*x%MOD;
		x=x*x%MOD;
		y>>=1;
	}
	return ans;
}

ll C(ll x,ll y)
{
	return fac[x]* inv[y] %MOD *inv[x-y] %MOD;
}

int main()
{
	scanf("%d",&n);
	for (int i=1;i<=n;i++)
	{
		scanf("%lld",&a[i]);
		sum[i]=sum[i-1]+a[i];
	}
	fac[0]=1; inv[0]=1;
	for (int i=1;i<=500000;i++)
	{
		fac[i]=fac[i-1]*i%MOD;
		inv[i]=power(fac[i],MOD-2);
	}
	ans=1;
	for (int i=2;i<=n;i++)
	{
		s=0;
		for (int j=1;j<a[i];j++) 
			s=(s+C(sum[i-1]+1,j)*C(a[i]-2,j-1))%MOD;
		if (!s) s=1;
		ans=ans*s%MOD;
	}
	printf("%lld",ans);
	return 0;
}
【项目实战】分布式日志系统 之 Exactly-once 语义:确保数据处理的精确性 在分布式系统的数据传输与处理中,是一种核心可靠性保障,其目标是确保数据“仅被处理一次”——既不重复(避免多次处理),也不遗漏(避免未处理)。与,二者共同保障数据处理的精确性。Exactly-once 语义是分布式系统中数据可靠性的高级目标,其核心通过“幂等设计”(解决重复问题)和“分布式事务”(解决原子性问题)实现。在实际应用中,常结合 At-Least-Once 语义与幂等性,或通过事务 API 与唯一 ID 去重的组合,平衡可靠性与系统性能。 阅读详情

相关推荐

PFC中pb模型实战:从胶结参数设置到破坏模拟全流程解析

本文详细解析了PFC软件中平行胶结模型(PB模型)的实战应用全流程。从胶结参数(pb_kn, pb_ks, pb_ten等)的物理意义与精准赋值入手,深入探讨了模型构建、胶结施加以避免初始损伤的技巧,并系统介绍了破坏过程的监测、阈值判定方法以及高级可视化与常见问题诊断。旨在帮助岩土工程与颗粒材料研究者掌握从参数调试到破坏模拟的核心操作,提升数值模拟的准确性与效率。

php55的博客 1074

JZOJ 4786 【NOIP2016提高A组模拟9.17】小a的强迫症

小a的强迫症题目大意有nn种颜色的珠子,第i种颜色的珠子有numinum_i个,要求排列中第ii种珠子的最后一颗一定要在第ii+1种珠子的最后一颗的前面,求排列珠子的方案。(答案 modmod 998244353998244353)数据范围题解假设当前排列到了第ii种珠子,11~ii-1种珠子已经排列完了,且方案数为WiW_i,当前放了KK颗珠子,现在我们考虑放入第ii种珠子。 我们先拿一颗第ii

XianHaoMing的博客 2482

SBM与超效率SBM模型实战:从原始面板数据到MATLAB高效实现

本文详细介绍了SBM模型与超效率SBM模型的核心原理,并提供了从原始面板数据预处理到MATLAB高效实现的完整实战指南。通过具体代码解析,帮助研究者掌握如何利用MATLAB进行数据标准化、模型构建、效率求解及结果可视化,从而精准评估决策单元的相对效率,尤其适用于在高效单元中进一步精细排名的场景。

weixin_29100399的博客 478

【JZOJ4786】【NOIP2016提高A组模拟9.17】小a的强迫症

题目描述 输入 输出 样例输入 3 2 2 1 样例输出 3 数据范围 样例解释 解法 先假定每种颜色的珠子取一个按顺序排列。 设这n个珠子就是每一种颜色的珠子的最后一个。 考虑逐个把珠子放入。 对于第i种颜色的珠子,计算有多少种摆放方式; 显然这种颜色最后的珠子前要放sum[i]-1个珠子,然后已放的有sum[i-1]个。 ...

weixin_30667301的博客 151

6.2 磁悬浮轴承:软件架构与实现

本文系统阐述了磁悬浮轴承控制系统的软件架构与实现方法。采用分层架构设计,包括硬件抽象层、实时控制内核、控制算法层和应用层,确保系统实时性和可靠性。重点分析了电流环、位置环等关键控制任务的调度策略,比较了不同硬件平台(DSP、ARM、FPGA)的软件实现方案。强调模块化设计、配置化管理等工程实践,并详细介绍了从算法仿真到系统联调的完整开发流程。最后指出严格的测试验证是保证系统性能的关键,需通过多阶段测试评估起浮时间、稳态精度等核心指标。

技术工作者 752

开关电源补偿设计避坑手册:为什么你的Buck电路总在轻载时振荡?

本文深入剖析了Buck电路在轻载时发生振荡的根本原因,并提供了专业的补偿设计避坑指南。文章指出,轻载下输出滤波器Q值飙升、DCM模式切换导致的小信号模型剧变是主要诱因,并详细对比了Type II与Type III补偿网络在宽负载范围内的表现差异。通过结合LTspice仿真与工程实践,指导工程师如何优化补偿环路设计,确保电源从满载到空载的全程稳定。

hadoop5ranger的博客 673

[JZOJ4786] 小a的强迫症

DescriptionSolution很明显的,我们可以按顺序放珠子。先放1号。怎么放都只有一种。然后放2号有1号个数+1个空,放2号个数-1个珠子(最后一个必须放在最后),可以有空位显然后面的是类似的。设前面有numnum个珠子,当前有pp个 然后就相当于在p−2p-2个空中放隔板,简单套一下组合公式就好但是隔板可以不插在珠子中?就是有的空可以不放珠子?枚举多少个隔板不插,再乘个组合公式。然后就

Never give in. 660

RAG——RAG 索引(文档解析技术)

本文介绍了RAG系统中文档解析的关键技术,重点分析了如何通过LangChain的Document Loaders处理多种格式文档。文章指出高质量文档解析对RAG系统效果的决定性作用,并详细讲解了PDF、TXT、Word等常见格式的解析方法。作者提供了代码示例和Gitee开源项目链接,特别强调了PDF解析的深入方案,同时介绍了相关依赖库的安装配置。文章还展示了如何定义通用文档加载方法,为开发者提供了实用的技术参考。

小志的博客 751

【NOIP模拟】小a的强迫症

DescriptionSolution由于组合数的基础不好,这题怎么想都想不出来。 但是有一个很显然的东西很容易看出来,最后一个颜色的柱子肯定要放在最后面。 那么现在只有n-1个位置了,最后一个颜色的柱子只剩下a[n]-1个了,但是这a[n]-1个可以随便乱放(很显然),那么贡献:Ca[n]−1n−1C_{n-1}^{a[n]-1},然后考虑倒数第二个颜色,因为倒数第一个已经放完了,那么就会留下

Facico的博客 783

双硬盘下Ubuntu 16.04与Win10双系统的安装

之前写过一个双系统安装过程,今天再次整理的原因是想重点强调双硬盘的区别。标红的一定要注意看,那就是我自己一步一步踏出来的坑啊...   基础步骤就不再重复,重点讲区别,需要看详细步骤的童鞋(或者你只有一个硬盘)请看我上一篇博客https://blog.csdn.net/weixin_40308540/article/details/80157444   区别:双硬盘和单硬盘的区别是什么呢?...

不吃包子 1122

面经-2023-联发科MTK-数字芯片设计

面经-2023-联发科MTK-数字芯片设计

w0shishabi的博客 2943

小a的强迫症 组合数学

模拟赛   T1看题意可以很清楚的知道,这是一道组合数学的题(废话)。考虑每种颜色的珠子放的方法数,最后乘法原理把它们相乘即可。(别忘了取模!!!)因为第i种珠子的最后一颗要在第i+1种的最后一颗后,所以从最后一个空位、最后一种珠子开始枚举。sum[i]表示前i种颜色的珠子总和。刚开始,最后的空位只能放最后一种珠子,然后把剩下的这种颜色的珠子往前面sum[i]-1个空里放,有C(sum[i]-1,...

. 348

安路TangDynasty和FD和JTAG驱动器安装

安路FPGA产品矩阵包含SALPHOENIX高性能、SALEAGLE高性价比和SALELF低功耗三大系列,广泛应用于网络通信、消费电子等领域。配套的TangDynasty(TD)集成开发环境支持标准设计输入,提供完整优化流程与调试工具。简要介绍了TD 6.2.1版本的安装步骤。

wangjie36的博客 1030

【数学】JZOJ_4786 小a的强迫症

题意 给出nnn种颜色的球以及它们的个数,把它们排成一排,排列中第iii种颜色的珠子一定要排在第i+1i+1i+1种颜色的最后一个珠子颜色之前,求出排列总数。 思路 按珠子的颜色分别处理。 当前珠子有xxx个,那么除了最后一个,其他的珠子都可以在前面sum−1sum-1sum−1个位置中随便排。 代码 #include<cstdio> #include<algorithm>...

GOODPLACE 244

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Jzoj4786 小a的强迫症

小a是一名强迫症患者,现在他要给一群带颜色的珠子排成一列,现在有N中颜色,其中第i中的颜色的珠子有s[i]个,要求排列中第i种颜色的最后一个珠子一定要排在第i+1种颜色的最后一个珠子前面,问有多少种方案 ΣS 组合数学法,一种一种颜色来排,我们发现对于一种颜色i,相当于在前面所有的空位种选出s[i]-1个,这个可以用组合数计算,其值为C(-1+Σs[i],s[i]-1),组合数我们可以用阶乘+逆

扩展の灰(Extended Ash/Cooevjnz) 547

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

【JZOJ4786】小a的强迫症

【JZOJ4786】题解

sadnohappy 434

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【JZOJ 4786】 小a的强迫症

Description Analysis直接边读边做,强制放一个在序列末端,其他的方案数模型就转成n个盒子,m个球,放球,盒子可为空求方案数,用组合数解决即可。Code#include<cstdio> #include<algorithm> using namespace std; typedef long long ll; const int N=600010,mo=998244353; ll

LYD729 612

jzoj4786-[NOIP2016提高A组模拟9.17]小a的强迫症【数论】

正题 题目大意 nnn个颜色第iii个个数为numinum_inumi​个,然后要求第iii种颜色的最后一个一定在第i+1i+1i+1种的最后一个前面。求方案总数。 解题思路 首先先定义一个1∼n1\sim n1∼n的序列,然后依次将剩下的数插入。 第iii个颜色有z=(∑j=1i−1numj)+1z=(\sum_{j=1}^{i-1}num_j)+1z=(∑j=1i−1​numj​)+1个位...

QuantAsk 416

【JZOJ 4786】小a的强迫症

Description Solution 从后往前做,很显然当前颜色做完以后就可以直接全部删掉, 直接用C公式即可。复杂度:O(nlog(mo−2))O(n\log(mo-2));Code#include<cstdio> #define fo(i,a,b) for(int i=a;i<=b;i++) #define fod(i,a,b) for(int i=a;i>=b;i--) using name

495

【jzoj4786】【小a的强迫症】

题目大意解题思路按颜色添加,显然一定要有一粒在最后,其他的用隔板原理就可以算出。code#include<set> #include<cmath> #include<cstdio> #include<cstring> #include<algorithm> #define LF double #define LL long long #define max(a,b) ((a>b)?a:b) #def

inklutcuah’s blog 405

[JZOJ4786]小a的强迫症

[JZOJ4786]小a的强迫症 题目大意: 有\(n(n\le10^5)\)种颜色的珠子,第\(i\)种颜色有\(num[i]\)个。你要把这些珠子排成一排,使得第\(i\)种颜色的最后一个珠子一定在第\(i+1\)种珠子的最后一个珠子之前,求方案数。 思路: \(f_i\)表示排完前\(i\)种颜色的方案数,显然前\(num[i]-1\)个可以瞎放,剩下一个一定要放最后,所以\(f_i=f_{...

weixin_34049032的博客 116

NOIP提高组【JZOJ4786】小a的强迫症

DescriptionData ConstraintSotution我们不妨倒着过来想。设有现在总共有num个球,先放第n种球,那么显然第n种球的最后一个一定要放在最后一个位置,这样方案数就为Ca[n]−1num−1C^{a[n]-1}_{num-1},再往下推,现在放第n-1种球,显然,第n-1种球的最后一个一定要放在当前剩下的最后一个位置,样方案数就为Ca[n]−1num−1C^{a[n]-1}

dance in th dark的博客 624

JZOJ 4786. 小a的强迫症

隔板问题

Luckfort 462

JZOJ4786. 【NOIP2016提高A组模拟9.17】小a的强迫症

DescriptionInputOutputSample Input3 2 2 1Sample Output3样例解释:Data Constraint分析根据题目,我们可以知道, 如果我们按照颜色1~N的顺序来放, 很显然,每种颜色的最后一个,一定放在当前最后的一个位置。那么,对于剩下的ai−1a_{i-1} 个就可以随便放了, 它们总共有多少种放法?这里需要运用到组合数,放球就等同于就原来

lijf2001的博客 1728

JZOJ 4786. 【NOIP2016提高A组模拟9.17】小a的强迫症

DescriptionInputSample Input3 2 2 1OutputSample Output3样例解释:Data ConstraintSolution 首先,我们设之前放了 SumSum 个珠子,当前要放 AiAi 个珠子。 那么这 AiAi 个珠子中要有一个放在那 SumSum 个珠子后面。 于是就有 Ai−1Ai-1 个珠子要插入到 Sum+Ai−1Sum+Ai-1 个珠子之中

Felix-Lee的博客 491
上一篇: 【USACO3.3.5】【洛谷P2733】家的范围 Home on the Range【dp】
下一篇: 【JZOJ4787】数格子【矩阵乘法】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值