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. Z-function

    用更容易理解的方法处理出 s[l----r]=s[1----r-l+1] 常数比KMP略大,时间复杂度\(O(n)\),方法和manacher很像 #include<bits/stdc++.h& ...

  2. POJ 1003:Hangover

    Hangover Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 109231   Accepted: 53249 Descr ...

  3. C++ 内存映射

    HANDLE hFile = NULL;HANDLE hFileMap = NULL;const viewmapsize = 8 * 1024 * 1024;//8mDWORD highsize,lo ...

  4. filebeat+redis+logstash+elasticsearch基本配置--适用于6.4版本

    filebeat配置: filebeat.inputs:- type: log enabled: true paths: - /opt/xxxx.log fields:                ...

  5. springboot + shiro+登录 微信登录 次数验证资料

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!大家可以看看是否对自己有帮助,点击查看教程. 1.https://blog.csdn.net/xtiawxf/article/details/5 ...

  6. 一、CI框架(CodeIgniter)简介

    CI是一个非常好用,非常灵活的PHP框架,在官网https://codeigniter.org.cn/ :最新版本3.1.10 版 就可以尽情使用了. 不忘初心,如果您认为这篇文章有价值,认同作者的付 ...

  7. UML-异常处理

    1.名词解释 缺陷(Fault):错误引起的行为.如:程序员拼写错了数据库名称 错误(Error):缺陷在运行系统中的表现.如:当使用拼写错误的名称调用数据库时,抛出数据库异常 故障(Failure) ...

  8. map构造同时初始化

    Map<String, Object> mtest =  new HashMap<String, Object>(){{put("test","M ...

  9. VScode 修改中文字体

    打开vscode ctrl+,打开设置 找到font,第一个是首选的英文字体,第二个是中文字体.

  10. Spring创建Bean的顺序

    一直对Spring创建bean的顺序很好奇,现在总算有时间写个代码测试一下.不想看过程的小伙伴可以直接看结论 目录结构: 其中:bean4.bean5包下的class没有注解@Component,测试 ...