【洛谷 P3941】入阵曲
来源:互联网 发布:nginx允许ip访问 编辑:程序博客网 时间:2024/06/07 13:50
N^4 60分暴力
#include<cstdio>#include<iostream>#include<cstring>#define ll long longusing namespace std;ll n,m,K,s[405][405],ans;int main(){ scanf("%lld%lld%lld",&n,&m,&K); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { scanf("%lld",&s[i][j]); s[i][j]+=s[i][j-1]+s[i-1][j]-s[i-1][j-1]; } for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) for(int k=i;k<=n;k++) for(int l=j;l<=m;l++) if((s[k][l]-s[i-1][l]-s[k][j-1]+s[i-1][j-1])%K==0) ans++; printf("%lld\n",ans);}
正解:
#include<cstdio>#include<iostream>#include<cstring>#define ll long longusing namespace std;ll n,m,K,s[405][405],ans,sd[405],r[1000000+5];int main(){ scanf("%lld%lld%lld",&n,&m,&K); for(int i=1;i<=n;i++)//行 for(int j=1;j<=m;j++)//列 { scanf("%lld",&s[i][j]); s[i][j]=(s[i][j]+s[i][j-1]+(K<<1))%K; } for(int i=1;i<=m;i++) for(int j=i;j<=m;j++) { for(int k=1;k<=n;k++) { sd[k]=(sd[k-1]+s[k][j]-s[k][i-1]+(K<<1))%K; r[sd[k]]=0; } for(int k=1;k<=n;k++) { if(!sd[k]) ans++; ans+=r[sd[k]];//******* r[sd[k]]++;//******** } } printf("%lld\n",ans);}
阅读全文
0 0
- 入阵曲 洛谷p3941
- 洛谷 P3941 入阵曲
- 洛谷 P3941 入阵曲
- 洛谷 P3941 入阵曲
- 洛谷 P3941 入阵曲
- 【洛谷 P3941】入阵曲
- 洛谷P3941入阵曲——二维k倍区间问题
- 洛谷3941 入阵曲
- 洛谷 3941 入阵曲 规律题
- 入阵曲(luogu3941)
- 入阵曲+将军令
- 入阵曲 (组合数 余数统计)
- 洛谷
- 洛谷
- 洛谷
- 洛谷 中位数
- 洛谷p1373
- 洛谷 P1579
- AJAX基础
- 安装ECSHOP提示创建管理员帐号失败解决办法
- java 堆 栈 方法区 数据存放 操作流程
- android 自卸载监听
- C语言学习与分享
- 【洛谷 P3941】入阵曲
- jsp页面什么时候用 .do 和 .jsp
- mysql split两个字段的一种办法
- 计算机字符和编码的深入讨论
- Maven-01-使用maven命令出错解决方法
- phpmemo
- Linux命令
- 5.7大小写转换
- 2. Add Two Numbers leetcode java