【pG&&CYH-01】元旦联欢会
题解:
t1:
题解是循环矩阵
但我并没有往矩阵上想下去。。。
这个东西比较显然的是可以把它看成生成函数
然后就可以任意模数fft了
复杂度比题解优 $nlog^2$
t2:
随便推推式子就好了
t3:
矩阵的一般套路
维护$f(n-1),f(n-2),{f(n-1)}^2,{f(n-2)}^2,f(n-1)*f(n-2)$
他们之间是可以递推的
t4:不会
t5:
这种题目比较显然是找规律
然后会发现2^i-2^i+1的差是等差数列
暴力做是nlogn的
我们可以利用一些优化做到O(n)
对2^n的打表(当然我oeis了一下是有递推式的)
然后快速查某个数有几位(builtin 但noi赛事都不能用于是我就手动实现了)
然而这题空间开16m不知道意义何在
fread的快读和快输都不能用。。。
不用快读快输显然过不了
还得从网上拉了个getchar的。。很烦。。
#include <bits/stdc++.h>
using namespace std;
#define rint register int
#define IL inline
#define rep(i,h,t) for (int i=h;i<=t;i++)
#define dep(i,t,h) for (int i=t;i>=h;i--)
#define ll long long
namespace IO{
/* char ss[1<<24],*A=ss,*B=ss;
IL char gc()
{
return A==B&&(B=(A=ss)+fread(ss,1,1<<24,stdin),A==B)?EOF:*A++;
}
template<class T>void read(T &x)
{
rint f=1,c; while (c=gc(),c<48||c>57) if (c=='-') f=-1; x=(c^48);
while (c=gc(),c>47&&c<58) x=(x<<3)+(x<<1)+(c^48); x*=f;
}*/
char sr[<<],z[];int C=-,Z=;
template<class T>void wer(T x)
{
if (x<) sr[++C]='-',x=-x;
while (z[++Z]=x%+,x/=);
while (sr[++C]=z[Z],--Z);
}
IL void wer1() {sr[++C]=' ';}
IL void wer2() {sr[++C]='\n';}
};
using namespace IO;
const int mo=1e9+;
int wa[];
ll p[]={,0ll, 2ll, 14ll, 70ll, 310ll, 1302ll, 5334ll, 21590ll, 86870ll, 348502ll, 1396054ll, 5588310ll, 22361430ll, 89462102ll, 357881174ll, 431590223ll, 726491955ll, 906229948ll, 625444057ll, 502824788ll, 13396288ll, 57779454ll, 239506422ll, 974802902ll, 932766017ll, 798172909ll, 326909341ll, 576072811ll, 841162140ll, 438390354ll, 901045041ll, 899147409ll, 186524142ll, 925965631ll, 63600624ll, 973878754ll, 334467499ll, 215775006ll, 618910060ll, 987260307ll, 972281364ll, 935605751ll, 835383617ll, 527455717ll, 481665396ll, 670346656ll, 168756770ll, 649767409ll, 548550282ll, 93162436ll, 170572390ll, 278134854ll, 304230006ll, 600301213ll, 167967225ll, 205393676ll, 888624265ll, 688596163ll, 22582881ll, 626728026ll};
IL int getws(ll x)
{
if (x>>) return +wa[x>>];
if (x>>) return +wa[x>>];
if (x>>) return +wa[x>>];
return wa[x];
}
IL ll js(ll x)
{
int k=getws(x);
ll now=1ll<<(k-);
return (p[k-]+((x-now)%mo)*((x-now+)%mo)%mo)%mo;
} ll read(){
ll w=,q=;char ch=' ';
while(ch!='-'&&(ch<''||ch>''))ch=getchar();
if(ch=='-')w=-,ch=getchar();
while(ch>=''&&ch<='')q=q*+ch-'',ch=getchar();
return w*q;
}
void write(ll x)
{
if(x<){putchar('-');x=~(x-);}
int s[],top=;
while(x){s[++top]=x%;x/=;}
if(!top)s[++top]=;
while(top)putchar(s[top--]+'');
}
int main()
{
freopen("1.in","r",stdin);
freopen("2.out","w",stdout);
rep(i,,) wa[i]=wa[i>>]+;
int n;
ios::sync_with_stdio(false);
n=read();
rep(i,,n)
{
ll k;
k=read();
write(js(k));
printf("\n");
}
return ;
}
t6:
数据范围写成这样出题人真的是nb
首先每个点都可以用组合数表示出来
然后再推推式子就得到全部的了
【pG&&CYH-01】元旦联欢会的更多相关文章
- 澄清以及半AOer的日常
我是不是应该澄清什么事情-- 首先--我这个傻狗退役了--指的是退本赛季而不是本奥赛-- 其次--我喜欢天文是真的喜欢--但是至于为什么又滚回来OI了--大概是因为本校只对所谓"五大学科奥赛 ...
- 使用zfs进行pg的pitr恢复测试
前段时间做了一下zfs做pg的增量恢复测试,mark一下. 服务器信息: 主机:192.168.173.43 备机:192.168.173.41 主备使用流复制搭建,在备机上面进行了zfs快照备份. ...
- [自制简单操作系统] 1、从0-1到汇编再到c语言的奥秘
目录: 1.用0-1编写最简单的操作系统 2.用汇编改写上面0-1程序 2.1 只用DB的汇编改写版 2.2 加入RESB汇编的改写版 2.3 进一步使用汇编替换0-1文件 2.4 核心程序也用 ...
- 《Pro AngularJS》学习小结-01
<Pro AngularJS>该书以一个SportsStore案例为主线铺开. 一.开发环境设置 该书中所用的数据库data server开发环境是Deployed,从来没听说过,而且作者 ...
- edgedb 内部pg 数据存储的探索 (五) 运行进程列表信息
做为一个简单的记录,方便后期分析学习 当前包含了一个timescale 的extension 可以不用关注 信息 ps -ef |grep edgedb edgedb 10559 24858 0 4月 ...
- Ceph PG介绍及故障状态和修复
1 PG介绍pg的全称是placement group,中文译为放置组,是用于放置object的一个载体,pg的创建是在创建ceph存储池的时候指定的,同时跟指定的副本数也有关系,比如是3副本的则会有 ...
- PG extract 函数示例
pg 对时间的处理还是很灵活的, + - * / 都有支持 期间有个extract 函数还是很有用的,我们先来看看几个例子:[code] postgres=# select extract(epoc ...
- 再谈PG索引-存储架构
1.索引的基本架构 PG的索引是B+树,B+树是为磁盘或其他直接存取辅助设备而设计的一种平衡查找树,在B+树中,所有记录节点都是按键值的大小顺序存放在同一层的叶节点中,各叶节点指针进行连接: meta ...
- 分布式存储Ceph之PG状态详解
https://www.jianshu.com/p/36c2d5682d87 1. PG介绍 继上次分享的<Ceph介绍及原理架构分享>,这次主要来分享Ceph中的PG各种状态详解,PG是 ...
随机推荐
- Python 防止mysql 注入的两种方式
Python防止sql注入一般有两种方法 1.escape_string MySQLdb.escape_string(param) 注意:如果报错出现 'ascii' codec can't en ...
- React踩坑记
一: Support for the experimental syntax 'classProperties' isn't currently enabled ERROR in ./src/inde ...
- 源码-mybatis-01-SqlSessionFactory创建
0.总概 1.SqlSessionFactory在mybatis只要创建一次: import com.suntek.vdm.gw.util.AESEncipher; import org.apac ...
- java压缩文件或文件夹并导出
java压缩文件或文件夹并导出 tozipUtil: package com.zhl.push.Utils; import java.io.File; import java.io.FileInput ...
- Windows Server 2016 配置 IIS 的详细步骤
Ø 简介 本文主要记录 Windows Server 2016 环境下,安装配置 IIS 的详细步骤.需要说明的是,在选择"功能"或"角色服务"时不建议将所有 ...
- shell 生成文件统计信息
#!/bin/bash #file name : filestat.sh if [ $# -ne 1 ]; then echo "Usage is $0 basepath"; ex ...
- luogu 2157 状压dp
f[i][j][k]分别代表1-i-1个人全部打完饭时i及其后7个人的状态为j时最后一个打饭的人为i+k的状态下所用的最小时间 当i已经打过饭时 即 j&1 那么 f [i] [j>&g ...
- Linux学习之管道符、重定向、通配符、转义符、环境变量
Linux学习之管道符.重定向.通配符.转义符.环境变量 1. 输入输出重定向 输入重定向是指把文件导入命令中. 输出重定向是指把原本要输出到屏幕的数据信息写入指定文件中. a 标准输入重定向(STD ...
- 在Ubuntu下进行XMR Monero(门罗币)挖矿的超详细图文教程
大家都知道,最近挖矿什么的非常流行,于是我也在网上看了一些大神写的教程,以及跟一些大神请教过如何挖矿,但是网上的教程都感觉写得不够详细,于是今天我这里整理一个教程,希望能够帮到想要挖矿的朋友. 首先, ...
- 移动端-处理后台传过来的html中图片的显示
function DealWithImg() { var width = 0; if (window.screen.width) { width = window.screen.width; } el ...