AtCoder Regular Contest 071
C - 怪文書 / Dubious Document
题意:定义一种无序的子序列:在原串中随意地取字符并随意打乱顺序。求多个字符串的最长公共无序子序列。
#include<cstdio>
#include<algorithm>
using namespace std; int n,m,s[],q[];
char c[];
int main(){
scanf("%d",&n);
for (int i=;i<;i++) s[i]=;
while (n--){
scanf("%s",c);
for (int i=;i<;i++) q[i]=;
for (int i=;c[i];i++) q[c[i]-'a']++;
for (int i=;i<;i++) s[i]=min(s[i],q[i]);
}
for (int i=;i<;i++)
while (s[i]--) putchar('a'+i);
}
D - 井井井 / ###
题意:求平行坐标轴的多条直线围成的所有矩形的面积和。
#include<cstdio>
#include<algorithm>
#define MN 200001
using namespace std; const int MOD=1e9+;
int n,m,a[MN],b[MN],A=,B=;
int main(){
scanf("%d%d",&n,&m);
for (int i=;i<=n;i++) scanf("%d",&a[i]);sort(a+,a++n);
for (int i=;i<=m;i++) scanf("%d",&b[i]);sort(b+,b++m);
for (int i=;i<n;i++) A=(1LL*(a[i+]-a[i])*i%MOD*(n-i)+A)%MOD;
for (int i=;i<m;i++) B=(1LL*(b[i+]-b[i])*i%MOD*(m-i)+B)%MOD;
printf("%lld\n",1ll*A*B%MOD);
}
E - TrBBnsformBBtion
定义几种变换:A->BB,B->AA,AAA->空,BBB->空。先给两个字符串,每次询问它们的两个子串是否能相互转换。
题解:将A当成1,B当成2,一个字符串的值为所有字符的和,那么只需要两个字符串的值模3意义下同于即可相互转换。
#include<cstdio>
#include<algorithm>
#define MN 200001
using namespace std; const int MOD=1e9+;
int qa[MN],qb[MN],n,x,y,X,Y;
char a[MN],b[MN];
int main(){
scanf("%s%s",a+,b+);
for (int i=;a[i];i++) qa[i]=qa[i-]+a[i]-'A'+;
for (int i=;b[i];i++) qb[i]=qb[i-]+b[i]-'A'+;
scanf("%d",&n);
while(n--){
scanf("%d%d%d%d",&x,&y,&X,&Y);
puts((qa[y]-qa[x-])%==(qb[Y]-qb[X-])%?"YES":"NO");
}
}
F - Infinite Sequence
求满足下列条件的无穷序列数量:
数字在1到n之间。
an与后面所有项相等。
ai后面的ai个项相等。
题解:dp即可。
#include<cstdio>
#include<algorithm>
#define MN 1000001
using namespace std; const int MOD=1e9+;
int n,f[MN],m;
inline void M(int &x){while(x>=MOD)x-=MOD;}
int main(){
int i,j;
scanf("%d",&n);f[n]=n;m=n-;
for (i=n-;i;i--) f[i]=1LL*(n-)*(n-)%MOD,M(f[i]+=f[i+]),M(f[i]+=m),M(m+=(i+>n?:f[i+])-);
printf("%d\n",f[]);
}
这几乎是我打过码量最少的比赛。
AtCoder Regular Contest 071的更多相关文章
- AtCoder Regular Contest 071 D - 井井井 / ###
题目:http://arc071.contest.atcoder.jp/tasks/arc071_b 题意: 有一个二维的平面,给你xn根竖线和ym根横线,问这些线围成的长方形(正方形)的面积和(要求 ...
- [Atcoder Regular Contest 071 F & JZOJ5450]Neutral
题目大意 一个无限长的序列\(a\), 需要满足 1.数列中的每一个数在\(1\)到\(n\)之间. 2.对于\(i>=n, j>=n\), \(a_i=a_j\). 3.对于\(i< ...
- AtCoder Regular Contest 061
AtCoder Regular Contest 061 C.Many Formulas 题意 给长度不超过\(10\)且由\(0\)到\(9\)数字组成的串S. 可以在两数字间放\(+\)号. 求所有 ...
- AtCoder Regular Contest 094 (ARC094) CDE题解
原文链接http://www.cnblogs.com/zhouzhendong/p/8735114.html $AtCoder\ Regular\ Contest\ 094(ARC094)\ CDE$ ...
- AtCoder Regular Contest 092
AtCoder Regular Contest 092 C - 2D Plane 2N Points 题意: 二维平面上给了\(2N\)个点,其中\(N\)个是\(A\)类点,\(N\)个是\(B\) ...
- AtCoder Regular Contest 093
AtCoder Regular Contest 093 C - Traveling Plan 题意: 给定n个点,求出删去i号点时,按顺序从起点到一号点走到n号点最后回到起点所走的路程是多少. \(n ...
- AtCoder Regular Contest 094
AtCoder Regular Contest 094 C - Same Integers 题意: 给定\(a,b,c\)三个数,可以进行两个操作:1.把一个数+2:2.把任意两个数+1.求最少需要几 ...
- AtCoder Regular Contest 095
AtCoder Regular Contest 095 C - Many Medians 题意: 给出n个数,求出去掉第i个数之后所有数的中位数,保证n是偶数. \(n\le 200000\) 分析: ...
- AtCoder Regular Contest 102
AtCoder Regular Contest 102 C - Triangular Relationship 题意: 给出n,k求有多少个不大于n的三元组,使其中两两数字的和都是k的倍数,数字可以重 ...
随机推荐
- 批量下载google 字体小工具
在项目开发中,我们经常用外国的框架,如bootstrap.nodejs.angularjs 时候经常要配套google 字体等资源, 但是由于国内网络原因,经常框架跑起来,网页在请求google 字体 ...
- C++11新语法糖之尾置返回类型
C++11的尾置返回类型初衷是为了方便复杂函数的声明和定义,但是当复杂度稍微提升一些的时候很明显能注意到这种设计的作用微乎其微. 首先考虑如下代码: C++ //返回指向数组的指针 auto func ...
- 框架原理第二讲,RTTI,运行时类型识别.(以MFC框架讲解)
框架原理第二讲,RTTI,运行时类型识别.(以MFC框架讲解) 一丶什么是RTTI,以及RTTI怎么设计 通过第一讲,我们知道了怎么样升成一个窗口了,以及简单的消息循环. 第二讲则是主要讲解RTTI ...
- mysql 证明为什么用limit时,offset很大会影响性能
本文同时发表在https://github.com/zhangyachen/zhangyachen.github.io/issues/117 首先说明一下MySQL的版本: mysql> sel ...
- bzoj 2727: [HNOI2012]双十字
Description 在C 部落,双十字是非常重要的一个部落标志.所谓双十字,如下面两个例子,由两条水平的和一条竖直的"1"线段组成,要求满足以下几个限制: 我们可以找到 5 个 ...
- eclipse无法识别Web项目的问题
1.如果导入web项目后,eclipse无法将其识别为web项目,因而无法发布到tomcat容器中的话,可以采取以下步骤尝试解决: 选中项目名称并点击右键,选择“Properties”项,在出项的面板 ...
- lesson - 4 Linux目录文件管理
内容概要:1. 和目录相关的几个命令mkdir 关注-p选项 rmdir 同样也有一个-p选项rm -r -f 两个常用选项cp -r 针对目录, 有时我们使用/bin/cpmv 重命名或者移动, 有 ...
- 原生JavaScript实现一个简单的todo-list
直接上代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- 鸟哥的linux私房菜学习-(一)优缺点分析以及主机规划与磁盘分区
一.linux的优缺点 那干嘛要使用Linux做为我们的主机系统呢?这是因为Linux有底下这些优点: 稳定的系统:Linux本来就是基于Unix概念而发展出来的操作系统,因此,Linux具有与Uni ...
- Java Web高级编程(二)
使用会话维持状态 一.会话 为了实现关联同一个用户端的多个请求和这些请求之间数据的共享,需要用到会话,会话用于维持请求和请求之间的状态.从服务器的角度,当用户的Web浏览器打开第一个链接到服务器的套接 ...