AtCoder Grand Contest 023 C - Painting Machines

Description

一个长度为 \(n\) 的序列,初始都为 \(0\),你需要求出一个长度为 \(n-1\) 的排列 \(P\), 按照 \(1\)\(n\) 的顺序,每次把 \(P_i\)\(P_i+1\) 染成 \(1\),一个排列的价值为所有的位置都变成 \(1\) 的操作次数,求所有排列的价值和
题面

Solution

我们求出价值为 \(\lceil\frac{n}{2}\rceil\)\(n-1\) 的排列的方案数,然后分别算贡献就行了
操作最多 \(i\) 次的方案数是 \(f[i]\)
恰好 \(i\) 次的方案就是 \(f[i]-f[i-1]\)
\(f[i]=C_{i-1}^{n-1-i}\)
具体含义:可以看作是每次可以选择 \(+1,+2\) ,求构成 \(n-2\) 的方案数,我们先默认都 \(+1\),剩下就是选择 \(+0,+1\) 了,只要总共的 \(i-1\) 次操作中有 \(n-1-i\) 个选择了 \(+1\),就一定可以达到目标了

#include<bits/stdc++.h>
using namespace std;
template<class T>void gi(T &x){int f;char c;for(f=1,c=getchar();c<'0'||c>'9';c=getchar())if(c=='-')f=-1;for(x=0;c<='9'&&c>='0';c=getchar())x=x*10+(c&15);x*=f;
}
const int N=1e6+10,mod=1e9+7;
int Fac[N],inv[N],n,f[N];
inline int C(int n,int m){return 1ll*Fac[n]*inv[m]%mod*inv[n-m]%mod;
}
int main(){freopen("pp.in","r",stdin);freopen("pp.out","w",stdout);cin>>n;int ans=0,li=(n+1)/2;Fac[0]=inv[0]=inv[1]=1;for(int i=1;i<=n;i++)Fac[i]=1ll*Fac[i-1]*i%mod;for(int i=2;i<=n;i++)inv[i]=(mod-1ll*(mod/i)*inv[mod%i]%mod)%mod;for(int i=2;i<=n;i++)inv[i]=1ll*inv[i]*inv[i-1]%mod;for(int i=li;i<n;i++)f[i]=1ll*C(i-1,n-1-i)*Fac[i]%mod*Fac[n-1-i]%mod;for(int i=n-1;i>=li;i--)f[i]=(f[i]-f[i-1]+mod)%mod;for(int i=n-1;i>=li;i--)ans=(ans+1ll*i*f[i])%mod;cout<<ans<<endl;return 0;
}

转载于:https://www.cnblogs.com/Yuzao/p/8971726.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/414132.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue中的computed属性

1、前言 本篇是Vue中最常用到的API之一computed属性&#xff0c;转载信息如下&#xff1a; 作者&#xff1a;gunelark链接&#xff1a;https://www.cnblogs.com/gunelark/p/8492468.html 2、正文 看了网上很多资料&#xff0c;对vue的computed讲解自己看的都不是很清晰&#xf…

工作304:uni返回上一页面

activated(){this.cheange(0) },用于刷新uni页面的操作 返回上一个页面

订单管理系统(含源码)

本文demo下载和教学视频地址&#xff1a;http://www.wisdomdd.cn/Wisdom/resource/articleDetail.htm?resourceId1077 实例使用PhpMySqlhtmlcss技术实现了订单管理系统, 系统可以分为多个角色进行登录操作, 每个角色分别对应相应的功能, 实例中介绍了一个强大的工具phpStudy&a…

工作305:对选择的数值清空

<template><div><!--选择账号 选择账号的具体页面 选择添加账号--><el-button icon"el-icon-plus" size"medium" click"open" :disabled"viewMode">添加账号</el-button><!--title表示标题 close表示…

openstack placement 组件作用理解

例如&#xff0c;一个资源提供者可以是一个计算节点&#xff0c;共享存储池&#xff0c;或一个IP分配池。placement服务跟踪每个供应商的库存和使用情况。例如&#xff0c;在一个计算节点创建一个实例的可消费资源如计算节点的资源提供者的CPU和内存&#xff0c;磁盘从外部共享…

Spring和SpringMVC总结篇

作者&#xff1a;肥宅兜链接&#xff1a;https://www.cnblogs.com/doudouxiaoye/p/5693399.html 1.为什么使用Spring ? 方便解耦&#xff0c;简化开发;通过Spring提供的IoC容器&#xff0c;可以将对象之间的依赖关系交由Spring进行控制&#xff0c;避免硬编码所造成的过度程序…

Python3爬虫(十一) 爬虫与反爬虫

Infi-chu: http://www.cnblogs.com/Infi-chu/ 一、重要概念 二、爬虫反爬虫进化论 转载于:https://www.cnblogs.com/Infi-chu/p/8981537.html

Io 异常: Invalid number format for port number

报错信息&#xff1a; Caused by: java.sql.SQLException: Io 异常: Invalid number format for port number at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.ja…

工作308:控制change

<div class"container" style"text-align: left;margin-top: 20px;margin-left: 10%" ><!--双向绑定数据checkedData 加入多选框的样式绑定的是checkData的数据 本次位置是一个数组 当其中选择的数值发生变化的时候 会触发对应的方法 --><e…

配置Maven环境变量-Eclipse/Idea添加Maven

1. 文件下载 官网下载地址&#xff1a;http://maven.apache.org/download.cgi 下方有我提供的下载链接。 由于下载缓慢&#xff0c;提供一份我的下载链接&#xff1a;https://www.lanzous.com/i7v2ryb 2. 解压文件 3. 环境变量 3.1、新建环境变量&#xff0c;如下所示&#xff…

HTML第二课——css

请关注公众号&#xff1a;自动化测试实战 先给大家提个建议&#xff0c;就是用sublime编辑器来编写。用其他的也无所谓&#xff0c;我只是建议&#xff0c;因为这个会帮你自动补全很多代码。 css概念 css叫层叠样式表。意思就是一层一层的叠加。作用就是让页面中的可视化标签变…

工作309:selectaccount方法接收值

<template><div><!--选择账号 选择账号的具体页面 选择添加账号--><el-button icon"el-icon-plus" size"medium" click"open" :disabled"viewMode">添加账号</el-button><!--title表示标题 close表示…

Invalid connection string format, a valid format is: host:port:sid

报错信息&#xff1a; Caused by: java.sql.SQLException: Io 异常: Invalid connection string format, a valid format is: "host:port:sid" at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.Databa…

Java代码优化

为什么要Java代码优化&#xff1f; 代码优化的最重要的作用应该是&#xff1a;避免未知的错误。在代码上线运行的过程中&#xff0c;往往会出现很多我们意想不到的错误&#xff0c;因为线上环境和开发环境是非常不同的&#xff0c;错误定位到最后往往是一个非常小的原因。因此&…

工作306:.sync解决子组件改变自身值 父组件也改变自身数值

Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-

修改MyEclipse/Eclipse左侧文字大小(MacOS/Windows)

一、Windows 首先找到 Eclipse/MyEclipse 的安装目录&#xff0c;然后找到如下目录&#xff1a; \plugins\org.eclipse.ui.themes_1.1.200.v20160815-0536\css\e4_basestyle.css 修改此 css 文件&#xff0c;添加如下内容&#xff1a; CTabFolder Tree{ font-size: 12px;} 二…

Kubernetes tutorial - K8S 官方入门教程

tutorials 教程 kubectl 的命令手册 1 Creating a Cluster 1.1 Using Minikube to Create a Cluster Kubernetes Clusters Kubernetes coordinates a highly available cluster of computers that are connected to work as a single unit. The abstractions in Kubernetes all…

前端js判空处理,js字符串判空,js数组判空

1、字符串 在 js 中&#xff0c;字符串为空会有这么几种形式&#xff0c;""&#xff0c;null&#xff0c;undefined&#xff0c;如果在已知变量为空串的情况下可以直接采用 if (string.length 0) 这种形式&#xff0c;今天总结一下常用的几种方法&#xff0c;方便下…

前端学习(2846):css浮动和定位布局

<< 我们一起来做秒杀 >>一、css浮动 float none left rightclearnone both left right二、css定位#div_test{position:relative;top:20px;left:30px;z-index:10; }#div_test2{position:absolute;top:20px;left:30px;z-index:-10; }