North American Invitational Programming Contest (NAIPC) 2016
(待补)
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的更多相关文章
- North American Invitational Programming Contest (NAIPC) 2017
(待补) A. Pieces of Parentheses 将括号处理完成后排序,方式参加下面的博客.然后做一遍背包即可. 2018 Multi-University Training Contest ...
- The North American Invitational Programming Contest 2017 题目
NAIPC 2017 Yin and Yang Stones 75.39% 1000ms 262144K A mysterious circular arrangement of black st ...
- 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 ...
- 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 \ ...
- 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 ...
- North American Invitational Programming Contest 2018
A. Cut it Out! 枚举第一刀,那么之后每切一刀都会将原问题划分成两个子问题. 考虑DP,设$f[l][r]$表示$l$点顺时针一直到$r$点还未切割的最小代价,预处理出每条边的代价转移即可 ...
- 2014 ACM-ICPC Beijing Invitational Programming Contest
点击打开链接 Happy Reversal Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld J ...
- 训练20191007 2017-2018 ACM-ICPC Latin American Regional Programming Contest
2017-2018 ACM-ICPC Latin American Regional Programming Contest 试题地址:http://codeforces.com/gym/101889 ...
- 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. ...
随机推荐
- Quartz.NET实现作业调度(3.0版本实现)定时执行一个任务
2.0版本请参考https://www.cnblogs.com/best/p/7658573.html这里的文章很详细: 我们现在想每5秒钟往txt文件夹里存储一个时间 首先:定义一个类,实现Quar ...
- Jedis使用工具类
Redis 使用工具类: package com.qlwb.business.common.redis; import org.apache.log4j.Logger; import redis.cl ...
- ASP.NET MVC缓存
根据缓存的位置不同,可以区分为: ①客户端缓存(缓存在用户的客户端,例如浏览器中) ②服务器缓存(缓存在服务器中,可以缓存在内存中,也可以缓存在文件里,并且还可以进一步地区分为本地缓存和分布式缓存两种 ...
- B/S模式获取客户端IP地址
using System.Web; namespace Common { public class IPUtil { /// <summary> /// 获取IP地址 /// </s ...
- jmeter压测配置
windows上面修改最大使用端口数和time_await等待时间 注册表需要添加两个配置,位置:HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ S ...
- 开发原则&设计模式
1.关于软件开发中的开发原则和设计模式: 1.1.开发原则 1.1.1.什么是开发原则? 开发原则就是开发的依据,只要依照这些原则进行开发,将来开发的软件具有很强的扩展力,很低的耦合度. 开发原则不属 ...
- hibernate课程 初探单表映射2-7 hbm配置文件常用设置
本节主要简介hbm配置文件以下内容: 1 mapping标签 2 class标签 3 id标签 1 hibbernate-mapping标签 schema 模式名称 catalog 目录名称 defa ...
- .net密码找回
using System; using System.Collections.Generic; using System.Text; using System.Net.Mail; using Syst ...
- spring boot 下 spring security 自定义登录配置与form-login属性详解
package zhet.sprintBoot; import org.springframework.beans.factory.annotation.Autowired;import org.sp ...
- Windows 服务快捷启动命令,可以直接在运行处运行电脑的功能。
gpedit.msc-----组策略 sndrec32-----录音机 nslookup----- ip地址侦测器 explorer------ 打开资源管理器 logoff-------注销命令 t ...