T3做不来。。 直接滚去T4 orz

乍一看 T4是个DP

题干

复杂度??(N^4) 咋优化。。。

还带一只捆绑 捆绑啥的最烦人了

最后20pts 直接废了 T了 很烦

不过拿到80pts已经很开心了惹

#pragma GCC optimize(1)
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
inline LL read () {
LL res = ;
int f () ;
char ch = getchar ();
while (!isdigit(ch)) {
if (ch == '-') f = - ;
ch = getchar();
}
while (isdigit(ch)) res = (res << ) + (res << ) + (ch ^ ),ch = getchar();
return res * f ;
}
const int N=<<,Mod=1e9+;
int n;
int f[N*N][N][N];
namespace slove {
void Init() {
n=read();
f[][][] = ;
for (register int i = ; i<n*(n-); i++)
for (register int j=; j<=((i+>n)?n:i+); j++)
for (register int k=j; k<=((i+>n)?n:i+); k++)
if (f[i][j][k]) {
if (i<=k+j- and k<n) f[i+][j][k+]=(f[i+][j][k+]+f[i][j][k])%Mod;
else if(((k*(k-)+j*(j-))>>)>=i+) f[i+][j][k]=(f[i+][j][k]+f[i][j][k])%Mod;
for (register int l=; l<=k-j; l++) if (((k*(k-)+(j+l)*(j+l-))>>)>=i+) f[i+][j+l][k]=(f[i+][j+l][k]+f[i][j][k])%Mod;
}
}
void slove() {
Init();
for (register int i=; i<=n*n-n; i++) {
LL ans=;
for (register int j =; j<=((i+>n)?n:i+); j++)
for (register int k=j; k<=((i+>n)?n:i+); k++) ans=(ans+f[i][j][k])%Mod;
printf("%d%c",ans," \n"[i==n*n-n]);
}
}
}
signed main() {
return slove::slove(),;
}

关于100pts ↓

#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm> template <class T>
inline T Min(const T &a, const T &b) {return a < b ? a : b;} const int N = , M = N * N, ZZQ = 1e9 + ; int n, p_limit[N], f[][N][N], sf[][N][N], g[][N], sg[][N], ans[N * N]; int main()
{
std::cin >> n;
for (int i = ; i <= n; i++)
p_limit[i] = (n - i + ) * (n - ) + (i - ) * (i - ) / ;
f[][n][] = ans[] = ;
for (int i = ; i <= n; i++) sf[][i][] = ;
for (int i = ; i <= Min(n * (n - ), n << ); i++)
{
int op = i & ;
for (int j = ; j <= n; j++)
for (int k = ; k <= n; k++)
f[op][j][k] = ;
for (int j = ; j <= n; j++) if (i <= p_limit[j])
for (int k = ; k <= n; k++) if (i + j >= n + k - )
f[op][j][k] = (f[op ^ ][j][k] + sf[op ^ ][j + ][k - ]) % ZZQ;
for (int j = n; j >= ; j--)
for (int k = ; k <= n; k++)
{
sf[op][j][k] = (sf[op][j + ][k] + f[op][j][k]) % ZZQ;
ans[i] = (ans[i] + f[op][j][k]) % ZZQ;
}
}
for (int j = ; j <= n; j++) for (int k = ; k <= n; k++)
g[][j] = (g[][j] + f[][j][k]) % ZZQ;
for (int j = n; j >= ; j--) sg[][j] = (sg[][j + ] + g[][j]) % ZZQ;
for (int i = (n << ) + ; i <= n * (n - ); i++)
{
int op = i & ;
for (int j = ; j <= n; j++) g[op][j] = ;
for (int j = ; j <= n; j++) if (i <= p_limit[j])
g[op][j] = sg[op ^ ][j];
for (int j = n; j >= ; j--)
{
sg[op][j] = (sg[op][j + ] + g[op][j]) % ZZQ;
ans[i] = (ans[i] + g[op][j]) % ZZQ;
}
}
for (int i = ; i <= n * (n - ); i++) printf("%d ", ans[i]);
puts("");
return ;
}

洛谷2019 3月月赛 T4的更多相关文章

  1. 洛谷2019 3月月赛 T2

    题干 洛谷同款 T2?(看似比T1简单些) 二维前缀和嘛?[多简单 我天天拿二维前缀和水DP] 这是前缀和的预处理 2333 处理出来所有的情况 某个地方要加上mod再%mod 如果没有这一步 那么 ...

  2. 洛谷2019 3月月赛 T1

    题干 2019第一次月赛 我只有255pts T1还是比较水的... 海星 T1一道简单的模拟(就是有坑..导致很多人不能一次性AC 比如说我) _3个坑点 1.位数问题 2.-0 3.0... #i ...

  3. 洛谷2019 3月月赛 T3

    题干 唯一AC T3 的大巨佬%%% 这题就是个大模拟吧. 题解

  4. 洛谷P3862 8月月赛B

    https://www.luogu.org/problemnew/show/P3862#sub P3862 8月月赛B 推公式:f(n)->f(n+1) 奇葩的预处理 https://www.l ...

  5. 洛谷2017 5月月赛R1

    我只想说面对这种难度的题目就是冲着20%的数据暴力... 分数:40+20+36.1+38+0+19 T1 签到题 III 题目背景 pj组选手zzq近日学会了求最大公约数的辗转相除法. 题目描述 类 ...

  6. 【贪心】洛谷2019 OI春令营 - 普及组 作业

    [P3817 小A的糖果 小A有N个糖果盒,第i个盒中有a[i]颗糖果. 小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖. [贪 ...

  7. 洛谷P1514 [NOIP2010提高组T4]引水入城

    P1514 引水入城 题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N 行M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城 ...

  8. 【洛谷2019 OI春令营】期中考试

    T68402 扫雷 题目链接:传送门 题目描述 扫雷,是一款单人的计算机游戏.游戏目标是找出所有没有地雷的方格,完成游戏:要是按了有地雷的方格,游戏失败.现在 Bob 正在玩扫雷游戏,你作为裁判要判断 ...

  9. 【动态规划】洛谷2019 OI春令营 - 普及组 作业

    [P1464 Function] [题解] 按照题目意思进行递归即可,但是过程中需要用到记忆化搜索. #include<bits/stdc++.h> using namespace std ...

随机推荐

  1. [luoguP1098] 字符串的展开(模拟)

    传送门 一个模拟. 代码 #include <cstdio> #include <cstring> #include <iostream> #define iswo ...

  2. 关于struct函数以及重载

    1,关于其函数的应用 我们从这里可以看出,void,int,Node,这三种类型,都是可以定义的. 2,重载的方式 如何重载比较符号 这里的比较重载就是小于号,如果前者x比后者x小就返回真 否则返回假 ...

  3. Linux下汇编语言学习笔记37 ---

    这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...

  4. LTTNG 使用

    http://lttng.org/docs/#doc-channel http://www.cnblogs.com/suncoolcat/p/3366045.html http://blog.csdn ...

  5. CSS聊天气泡

    概述 谷歌效果图如下: ie效果图如下: 完整代码 <!DOCTYPE html> <html> <head> <meta charset="gbk ...

  6. 用vhd挂载并安装win7且建立分差vhd

    准备:硬盘分区激活第一个分区; imagex.exe; install.wim; winpe boot pc 1.cmd命令下,创建主vhd      (1)diskpart       (打开dis ...

  7. yarn-cli 简介

    Yarn 提供了丰富的命令行命令来帮你应付你所开发的 Yarn 包的方方面面的工作,包括安装.管理.发布等等. 虽然我们在这里按照字母顺序列出了我们提供的所有命令,但是某些更常用的命令还是要着重提一下 ...

  8. VMWare中的Host-only、NAT、Bridge的比較

    VMWare有Host-only(主机模式).NAT(网络地址转换模式)和Bridged(桥接模式)三种工作模式. 1.bridged(桥接模式) 在这样的模式下.VMWare虚拟出来的操作系统就像是 ...

  9. cmd启动Oracle服务和监听服务

    启动数据库服务 net start oracleserviceorcl 启动数据库监听 lsnrctl start

  10. ImportError: No module named &#39;ConfigParser&#39;

    Resolve Method: I found the problem. I had manually installed a newer version of python (version 3.2 ...