(待补)

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. Chart.js: 一个简单的 JS Chart Library

    Chart.js 是一个 Open Source 的 JavaScript Chart Library.它一共有 6 中 Chart,全都是 HTML5 based. 底下是 Chart.js 所提供 ...

  2. 转:WPF中ListBox的创建和多种绑定用法

    先从最容易的开始演示ListBox控件的创建. Adding ListBox Items下面的代码是向ListBox控件中添加多项ListBoxItem集合.XAML代码如下:<ListBox ...

  3. UVALive 4727 Jump(约瑟夫环,递推)

    分析: 如果问题是要求最后一个删除的数,重新编号为0到n-1,f[n]表示答案,那么f[n] = (f[n-1]+k)%n. 因为删掉下标k-1以后可以从下标k重新编号为0. 在这个问题只需要推出最后 ...

  4. Http协议--请求报文和响应报文

           http协议是位于应用层的协议,我们在日常浏览网页比如在导航网站请求百度首页的时候,会先通过http协议把请求做一个类似于编码的工作,发送给百度的服务器,然后在百度服务器响应请求时把相应 ...

  5. animation写动画

    最近,接到项目需求,需要写大量的动画,那么怎么写呢? 动画是使元素从一种样式逐渐变化为另一种样式的效果.可以用百分比来规定变化发生的时间,或用关键词 "from" 和 " ...

  6. GPU并行编程:内核及函数的实现

    原文链接 回想一下我们之前在设备上使用“kernelFunction<<<1,1>>>(..)”执行一个函数的代码,我在那里还曾说过后面会细说,本文就详细介绍一下参 ...

  7. C#的接口基础教程之二 定义接口

    定义接口 从技术上讲,接口是一组包含了函数型方法的数据结构.通过这组数据结构,客户代码可以调用组件对象的功能. 定义接口的一般形式为: [attributes] [modifiers] interfa ...

  8. 第十四篇、OC_新闻查看器

    PageTitleView: #import <UIKit/UIKit.h> @class GFBPageTitleView; @protocol GFBPageTitleViewDele ...

  9. wepy一些问题和解决方案

    wepy一些问题和解决方案 小程序开发和传统的web开发有相识的地方,但是也有不同的地方,要区分. computed属性名和props属性名重复 如果那个组件的渲染值是重名的computed属性,每次 ...

  10. swiper动画效果

    参考swiper官方网站:http://www.swiper.com.cn/ Swiper常用于移动端网站的内容触摸滑动: 结构展示:   纯javascript打造的滑动特效插件,面向手机.平板电脑 ...