(待补)

A. Fancy Antiques

爆搜。

B. Alternative Bracket Notation

C. Greetings!

D. Programming Team

0/1分数规划 + 树上依赖型背包。

E. K-Inversions

将 A 和 B 的相对位置看做多项式,用FFT,最后统计系数。

#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0); struct comp{
double r,i;
comp(double _r=0, double _i=0):r(_r),i(_i) {}
comp operator + (const comp& x) { return comp(r+x.r, i+x.i); }
comp operator - (const comp& x) { return comp(r-x.r, i-x.i); }
comp operator * (const comp& x) { return comp(r*x.r-i*x.i, r*x.i+i*x.r); }
}; void FFT(comp a[], int n, int t)
{
for(int i=1, j=0; i < n-1; i++)
{
for(int s=n; j^=s>>=1, ~j&s;);
if(i<j)
swap(a[i],a[j]);
}
for(int d=0; (1<<d)<n; d++)
{
int m=1<<d, m2=m<<1;
double o=pi/m*t;
comp _w(cos(o),sin(o));
for(int i=0; i<n; i+=m2)
{
comp w(1,0);
for(int j=0; j<m; j++)
{
comp& A=a[i+j+m], &B=a[i+j], t=w*A;
A=B-t;
B=B+t;
w=w*_w;
}
}
}
if(t == -1)
for(int i=0; i<n; i++)
a[i].r=floor(a[i].r/n+0.5);
} const int maxn = 3e6 + 100;
comp A[maxn], B[maxn];
char str[maxn];
int len; int main()
{
scanf("%s", str);
len = strlen(str);
for(int i = 0; i < len; ++i)
{
if(str[i] == 'B')
A[i].r=0, B[len-i].r=1;
else
A[i].r=1, B[len-i].r=0;
}
int tmp = 1;
while(tmp < 2*len)
tmp*=2;
swap(len, tmp);
FFT(A, len, 1);
FFT(B, len, 1);
for(int i = 0; i < len; ++i)
A[i] = A[i]*B[i];
FFT(A, len, -1);
for(int i = tmp+1; i < 2*tmp; ++i)
{
printf("%.0f\n", A[i].r);
} return 0;
}

  

F. Mountain Scenes

dp[i][j]表示前 i 块区域总共用的长度为 j

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
typedef long long LL;
const int maxn = 100 + 100;
const int MOD = 1e9 + 7;
int dp[maxn][10010]; int main()
{
int n, w, h;
scanf("%d%d%d", &n, &w, &h);
dp[0][0] = 1; for (int i = 1; i <= w; i++)
for (int j = 0; j <= n; j++)
for (int k = 0; k <= h; k++)
{
if (j+k > n) break;
dp[i][j+k] += dp[i-1][j];
if (dp[i][j+k] >= MOD) dp[i][j+k] -= MOD;
} LL ans = 0;
for (int i = 1; i <= n; i++) ans += dp[w][i];
for (int i = 1; i <= h; i++)
if (i * w <= n) ans--;
printf("%lld\n", (ans+MOD) % MOD);
}

  

G. Symmetry

H. Jewel Thief

I. Tourists

LCA爆。复杂度O(nlog2n)

J. Whiteboard

K. YATP

North American Invitational Programming Contest (NAIPC) 2016的更多相关文章

  1. North American Invitational Programming Contest (NAIPC) 2017

    (待补) A. Pieces of Parentheses 将括号处理完成后排序,方式参加下面的博客.然后做一遍背包即可. 2018 Multi-University Training Contest ...

  2. The North American Invitational Programming Contest 2017 题目

    NAIPC 2017 Yin and Yang Stones 75.39% 1000ms 262144K   A mysterious circular arrangement of black st ...

  3. The North American Invitational Programming Contest 2018 D. Missing Gnomes

    A family of nn gnomes likes to line up for a group picture. Each gnome can be uniquely identified by ...

  4. The North American Invitational Programming Contest 2018 H. Recovery

    Consider an n \times mn×m matrix of ones and zeros. For example, this 4 \times 44×4: \displaystyle \ ...

  5. The North American Invitational Programming Contest 2018 E. Prefix Free Code

    Consider nn initial strings of lower case letters, where no initial string is a prefix of any other ...

  6. North American Invitational Programming Contest 2018

    A. Cut it Out! 枚举第一刀,那么之后每切一刀都会将原问题划分成两个子问题. 考虑DP,设$f[l][r]$表示$l$点顺时针一直到$r$点还未切割的最小代价,预处理出每条边的代价转移即可 ...

  7. 2014 ACM-ICPC Beijing Invitational Programming Contest

    点击打开链接 Happy Reversal Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      J ...

  8. 训练20191007 2017-2018 ACM-ICPC Latin American Regional Programming Contest

    2017-2018 ACM-ICPC Latin American Regional Programming Contest 试题地址:http://codeforces.com/gym/101889 ...

  9. 2017-2018 ACM-ICPC Latin American Regional Programming Contest PART (11/13)

    $$2017-2018\ ACM-ICPC\ Latin\ American\ Regional\ Programming\ Contest$$ \(A.Arranging\ tiles\) \(B. ...

随机推荐

  1. 性能测试学习第十一天_Analysis

    Analysis的功能:对测试运行结果进行查看,分析和比较 导入分析文件:loadrunner results文件和analysis session文件 Analysis窗口: 1.会话浏览器窗格 2 ...

  2. codesmith 在安装32位Oracle 客户端问题解决

    问题解决办法如下: https://blog.csdn.net/csdn1152789046/article/details/52248669

  3. 使用纯css实现波浪效果

    有时候我们需要实现水晃动的效果,其实我们可以通过css旋转动画和圆角来实现. 首先来2个div,外层div相对定位,内层div绝对定位,内层div大致位于外层div上半部分.外层div设置一个颜色较深 ...

  4. alias 新的命令='原命令 -选项/参数'。举例说明,alias l=‘ls -lsh' 将重新定义 ls 命令,现在只需输入 l 就可以列目录了。

    alias 新的命令='原命令 -选项/参数'.举例说明,alias l=‘ls -lsh' 将重新定义 ls 命令,现在只需输入 l 就可以列目录了.

  5. python3.7 安装 xlrd 模块---Mac

    要用Excel将数据和代码分离,需要import xlrd, 使用前需要先安装xlrd模块. 说明:通过在google中搜索“xlrd Mac”,下载xlrd.py模块(下载地址:http://mac ...

  6. Javascript 向量

    向量 既有大小又有方向的量叫做向量(亦称矢量),与标量相对,用JS实现代码如下,直接搬miloyip的了 Vector2 = function(x, y) { this.x = x; this.y = ...

  7. [VC]VC实现开机自动运行程序

    有时候,我们需要在计算机启动的时候就启动某些程序,不要人干预.这里,提供一种让程序开机自动运行的方法.见下面代码: BOOL CXXX::SetAutoRun(CString strPath) { C ...

  8. Linux 文件的压缩与解压

    1.  tar结尾压缩命令 [root@test ~]# tar -cvf grub.tar /boot/grub/ 查看压缩包文件 [root@test ~]# tar -vtf grub.tar ...

  9. 面向服务架构SOA

    面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型.它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来:接口是采用中 ...

  10. 【Python】bytes和hex字符串之间的相互转换。

    反复在几个环境上折腾码流的拼装解析和可读化打印,总是遇到hex字符串和bytes之间的转换,记录在这里吧. 1. 在Python2.7.x上(更老的环境真心折腾不起),hex字符串和bytes之间的转 ...