ABCD

签到(A、B、C过水已隐藏)

#include<bits/stdc++.h>
using namespace std;
const int N=;
int n,m,ans,f1[N][N],f2[N][N],f3[N][N],f4[N][N];
char mp[N][N];
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)scanf("%s",mp[i]+);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
if(mp[i][j]=='.')f1[i][j]=f1[i-][j]+,f2[i][j]=f2[i][j-]+;
for(int i=n;i;i--)
for(int j=m;j;j--)
if(mp[i][j]=='.')f3[i][j]=f3[i+][j]+,f4[i][j]=f4[i][j+]+;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
if(mp[i][j]=='.')ans=max(ans,f1[i][j]+f2[i][j]+f3[i][j]+f4[i][j]-);
printf("%d\n",ans);
}

E

发现x^y=x+y时,x,y没有同时为1的位。于是数位DP,f[i][0/1]表示到了第i位是否达到上限,发现该位取1有2种方案,取0有1种,大力O(n)DP即可。

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+,mod=1e9+;
int n,ans,f[N][];
char s[N];
int main()
{
scanf("%s",s+);
n=strlen(s+);
f[][]=;
for(int i=;i<=n;i++)
if(s[i]=='')f[i][]=(3ll*f[i-][]+f[i-][])%mod,f[i][]=2ll*f[i-][]%mod;
else f[i][]=3ll*f[i-][]%mod,f[i][]=f[i-][];
ans=(f[n][]+f[n][])%mod;
printf("%d",ans);
}

F

设计算到x时,答案是ans,于是计算x后,ans=(ans*10i+x)%m,其中i为x的位数,然后发现这个可以矩阵转移,对于位数相同的数字,转移的矩阵是相同的,于是分位数转移至多18次即可,复杂度O(27logBLlgBL)。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll L,st,ed,b,pw[];
int m,ans;
struct mat{
int a[][];
mat(){memset(a,,sizeof a);}
void init(int i)
{
memset(a,,sizeof a);
a[][]=pw[i]%m,a[][]=a[][]=a[][]=a[][]=;
}
}A,ret;
mat operator*(mat a,mat b)
{
mat c;
for(int i=;i<;i++)
for(int j=;j<;j++)
for(int k=;k<;k++)
c.a[i][j]=(c.a[i][j]+1ll*a.a[i][k]*b.a[k][j])%m;
return c;
}
int solve(ll L,ll R,int id)
{
ll n=(R-L)/b+;
for(int i=;i<;i++)for(int j=;j<;j++)ret.a[i][j]=i==j;
A.init(id);
while(n)
{
if(n&)ret=ret*A;
A=A*A,n>>=;
}
ans=(1ll*ans*ret.a[][]+L%m*ret.a[][]+b%m*ret.a[][])%m;
}
int main()
{
pw[]=;for(int i=;i<=;i++)pw[i]=pw[i-]*;
cin>>L>>st>>b>>m;
ed=st+b*(L-);
for(int i=;i<=;i++)
if(st<pw[i])
{
ll R=(pw[i]--st)/b*b+st;
if(R>ed)R=ed;
solve(st,R,i);
if(R==ed)break;
st=R+b;
}
cout<<ans<<endl;
}

result:rank5 rating+=65 now_rating=2020,ABC为什么performance上限要设2400?就涨了这么点……不过好在上黄了。

AtCoder Beginner Contest 129的更多相关文章

  1. AtCoder Beginner Contest 129 解题报告

    传送门 写了四个题就跑去打球了.第五题应该能肝出来的. A - Airplane #include <bits/stdc++.h> using namespace std; inline ...

  2. AtCoder Beginner Contest 100 2018/06/16

    A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...

  3. AtCoder Beginner Contest 052

    没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...

  4. AtCoder Beginner Contest 053 ABCD题

    A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...

  5. AtCoder Beginner Contest 136

    AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...

  6. AtCoder Beginner Contest 137 F

    AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...

  7. AtCoder Beginner Contest 076

    A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...

  8. AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】

    AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...

  9. AtCoder Beginner Contest 064 D - Insertion

    AtCoder Beginner Contest 064 D - Insertion Problem Statement You are given a string S of length N co ...

随机推荐

  1. B. The Number of Products(Codeforces Round #585 (Div. 2))

    本题地址: https://codeforces.com/contest/1215/problem/B 本场比赛A题题解:https://www.cnblogs.com/liyexin/p/11535 ...

  2. 使用GDI+显示OpenCV中的图像IplImage

    OpenCV虽然自带了轻量级的界面库HighGUI,但是支持的图像化元素实在是太少了,一般只在前期算法测试时使用.实际产品还是使用MFC库.因此本文记录了如何在GDI+中显示OpenCV中的IplIm ...

  3. Maven:java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

    直接参考前面一篇文章中间介绍的第2种方法即可:Maven:sun.security.validator.ValidatorException: PKIX path building failed: s ...

  4. tyvj 1860 后缀数组

    真·模板题(然而还是TLE了,tyvj真是个毒瘤,输出double什么的就是 -0.00000000,这些就TLE2333) 简单的说一下本蒟蒻看了一天后缀数组的收获(这东西太神了,,,wcwc,,收 ...

  5. exgcd详解

    注:本文中所有 \(\%\) 号均表示取模, \(gcd(a,b)\) 表示 \(a\) 和 \(b\) 的最大公因数 1.exgcd是什么? exgcd大名扩展欧几里得算法,用来求形如 \(gcd( ...

  6. struts2模型驱动传值问题

    控制台错误提示: 2020-01-08 18:34:40,292 [http-nio-8080-exec-3] [org.apache.struts2.dispatcher.Dispatcher]-[ ...

  7. vue中的axios请求

    1.get请求 // get this.$axios.get('请求路径') .then(function (response) { console.log(response); // 成功 }) . ...

  8. Mybatis之配置文件

    Mybatis_config.xml <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE conf ...

  9. python刷LeetCode:9. 回文数

    难度等级:简单 题目描述: 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1: 输入: 121输出: true示例 2: 输入: -121输出: fa ...

  10. 读取cookie、写进cookie方法

    整理 读取cookie.写进cookie方法. //设置cookies中的值 function setCookie(name, value) { var Days = 30; var exp = ne ...