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. hihoCoder#1036 Trie图

    原题地址 看了这篇博文,总算是把Trie图弄明白了 Runtime Error了无数次,一直不知道为什么,于是写了个脚本生成了一组大数据,发现果然段错误了. 调试了一下午,总算闹明白了,为什么呢? 1 ...

  2. 前端开发:JavaScript---ECMAScript

    JavaScript:JavaScript是一种web前端的描述语言,也是一种基于对象(object)和事件驱动(Event Driven)的脚本语言.它运行在客户端从而减轻服务器的负担. js是一种 ...

  3. 莎拉公主的困惑(bzoj 2186)

    Description 大富翁国因为通货膨胀,以及假钞泛滥,政府决定推出一项新的政策:现有钞票编号范围为1到N的阶乘,但是,政府只发行编号与M!互质的钞票.房地产第一大户沙拉公主决定预测一下大富翁国现 ...

  4. android开发里跳过的坑——button不响应点击事件

    昨天遇到一个头疼的问题,在手机上按钮事件都很正常,但是在平板上(横屏显示的状态),button点击事件不响应,代码简化如下: public class Test extends Activity im ...

  5. hdu -1251 统计难题(字典树水题)

    http://acm.hdu.edu.cn/showproblem.php?pid=1251 建树之后 查询即可. G++提交 ME不知道为什么,c++就对了. #include <iostre ...

  6. poj_2586_Y2K Accounting Bug_201407211318

    Y2K Accounting Bug Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10210   Accepted: 50 ...

  7. 网易2018校招 合唱 DP

      时间限制:2秒 空间限制:131072K 小Q和牛博士合唱一首歌曲,这首歌曲由n个音调组成,每个音调由一个正整数表示.对于每个音调要么由小Q演唱要么由牛博士演唱,对于一系列音调演唱的难度等于所有相 ...

  8. POJ 3041_Asteroids

    题意: N*N网格中有小行星,光束能将一整行或者一整列的行星消灭,问消灭所有行星至少需要多少光束? 分析: 最小顶点覆盖问题,将每个小行星看成边,左右顶点为横纵坐标,可以转化为二分图,利用二分图中最小 ...

  9. UVA 674_Coin Change

    题意: 给定一个数,求用1,5,10,25,50有多少种组合方式. 分析: 简单计数dp,dp[i][j]表示由前i+1个元素组成j的种数,注意dp[i][0]初始化为1,因为一个元素也不选的方法总是 ...

  10. poj——2367  Genealogical tree

    Genealogical tree Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6025   Accepted: 3969 ...