当前位置: 首页 > news >正文

网站备案流程实名认证天津哪里做网站最好

网站备案流程实名认证,天津哪里做网站最好,2023年九月份新闻,wordpress 修改 page作者:指针不指南吗 专栏:Acwing 蓝桥集训每日一题 🐾输出的时候,注意数据类型🐾 文章目录1.截断数组2.前缀和3.子矩阵的和4.k倍区间1.截断数组 给定一个长度为 n 的数组 a1a_1a1​,a2a_2a2​,…,ana_nan​。 现在&…

作者:指针不指南吗
专栏:Acwing 蓝桥集训每日一题

🐾输出的时候,注意数据类型🐾

文章目录

    • 1.截断数组
    • 2.前缀和
    • 3.子矩阵的和
    • 4.k倍区间

1.截断数组

给定一个长度为 n 的数组 a1a_1a1,a2a_2a2,…,ana_nan

现在,要将该数组从中间截断,得到三个非空子数组。

要求,三个子数组内各元素之和都相等。

请问,共有多少种不同的截断方法?

输入格式

第一行包含整数 n。

第二行包含 n个整数 a1a_1a1,a2a_2a2,…,ana_nan

输出格式

输出一个整数,表示截断方法数量。

数据范围

前六个测试点满足 1≤n≤10。
所有测试点满足 1≤n≤10510^5105,−10000≤aia_iai≤10000。

输入样例1:

4
1 2 3 3

输出样例1:

1

输入样例2:

5
1 2 3 4 5

输出样例2:

0

输入样例3:

2
0 0

输出样例3:

0
  • 思路

    • 分三个非空子数组且和相同,即每个子数组的和是s[n]/3;

    • 首先呢,枚举两个节点肯定不行,时间复杂度是 O(n2n^2n2),题里面的数量级太大了

    所以只能尝试枚举一个节点,再把剩下一个表示出来

    • 做法:枚举第二个节点 j ,随着 j 的增加,第一个节点满足 s[n]/3,也会增加,用cnt 存储 j 前面满足条件的第一个节点,当j 也满足条件时,把总的存在 ans 中

    • 注意:结果最大是100010的阶乘,远超int 类型,会爆,开long long

    ​ 考虑特殊请款,不够三个元素,s[n]%3!=0

在这里插入图片描述

  • 代码实现

    #include<bits/stdc++.h>
    using namespace std;int s[100010];
    long long ans;int main()
    {int n;cin>>n;for(int i=1;i<=n;i++){  //计算前缀和scanf("%d",&s[i]);s[i]+=s[i-1];}//考虑特殊情况if(s[n]%3!=0||n<3){cout<<0;return 0;}int cnt=0;for(int i=2;i<n;i++){if(s[i-1]==s[n]/3)  cnt++;  //第二个节点之前,满足条件可以成为第一个节点的个数if(s[i]==s[n]/3*2)  ans+=cnt;  //满足条件,成为第二个节点,加上第一个节点,类似于加法原理}printf("%lld",ans);  //注意数据类型时long longreturn 0;
    }
    

2.前缀和

输入一个长度为 n 的整数序列。

接下来再输入 m个询问,每个询问输入一对 l,r。

对于每个询问,输出原序列中从第 l个数到第 r个数的和。

输入格式

第一行包含两个整数 n 和 m。

第二行包含 n个整数,表示整数数列。

接下来 m行,每行包含两个整数 l 和 r,表示一个询问的区间范围。

输出格式

共 m 行,每行输出一个询问的结果。

数据范围

1≤l≤r≤n,
1≤n,m≤100000,
−1000≤数列中元素的值≤1000−1000≤数列中元素的值≤1000

输入样例:

5 3
2 1 3 6 4
1 2
1 3
2 4

输出样例:

3
6
10
  • 代码实现

    #include<bits/stdc++.h>
    using namespace std;int s[100010];int main()
    {int n,m;cin>>n>>m;for(int i=1;i<=n;i++){cin>>s[i];s[i]+=s[i-1];}while(m--){int a,b;cin>>a>>b;cout<<s[b]-s[a-1]<<endl;}return 0;
    }
    

3.子矩阵的和

输入一个 n行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。

对于每个询问输出子矩阵中所有数的和。

输入格式

第一行包含三个整数 n,m,q。

接下来 n行,每行包含 m 个整数,表示整数矩阵。

接下来 q 行,每行包含四个整数 x1,y1,x2,y2,表示一组询问。

输出格式

共 q行,每行输出一个询问的结果。

数据范围

1≤n,m≤1000,
1≤q≤200000,
1≤x1≤x2≤n,
1≤y1≤y2≤m,
−1000≤矩阵内元素的值≤1000−1000≤矩阵内元素的值≤1000

输入样例:

3 4 3
1 7 2 4
3 6 2 8
2 1 2 3
1 1 2 2
2 1 3 4
1 3 3 4

输出样例:

17
27
21
  • 代码实现
#include<iostream>
using namespace std;const int N=1010;int s[N][N];int n,m,q;int main(){cin>>n>>m>>q;for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){cin>>s[i][j];s[i][j]+=s[i-1][j]+s[i][j-1]+s[i-1][j-1];}while(q--){int x1,y1,x2,y2;cin>>x1>>y1>>x2>>y2;cout<<s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1];}return 0;
}

4.k倍区间

题目描述

给定一个长度为 N 的数列,1,2,⋯A1,A2,⋯A N,如果其中一段连续的子序列之和是 K 的倍数,我们就称这个区间 是 K 倍区间。

你能求出数列中总共有多少个 K 倍区间吗?

输入描述

第一行包含两个整数 NK(1≤N,K10510^5105 )。

以下 N 行每行包含一个整数 A i ( 1≤A i10510^5105 ).

输出描述

输出一个整数,代表 K 倍区间的数目。

示例

输入

5 2
1
2
3
4
5

输出

6
  • 代码实现
#include<bits/stdc++.h>
using namespace std;typedef long long LL;
const LL N=100010;
LL s[N],cnt[N];int main()
{LL n,k,i,r,res=0;cin>>n>>k;for(i=1;i<=n;i++) cin>>s[i];  //前缀和for(i=1;i<=n;i++) s[i]+=s[i-1];//同余cnt[0]=1;  //包含它本身,初始化为1for(r=1;r<=n;r++) {LL u=s[r]%k; res+=cnt[u];cnt[u]++;}cout<<res<<endl;return 0;}
http://www.yayakq.cn/news/609545/

相关文章:

  • 做网站需要多大带宽网站收录有什么好处
  • 东莞网站搭建卖自己做的网站去哪
  • 怎么自做网站响应式网页设计与制作
  • 女性开源网站全国工商企业查询
  • 广东企业建网站wordpress 3.8 跟踪代码
  • 做网站留后门是怎么回事网络安全设计方案
  • 网站系统修改不了怎么回事楼市最新消息新政策
  • 平凉网站建设北京网站建设企业
  • 发布建设网站服务器做视频网站
  • 做报名表的网站阿里云服务器建设网站选择那个镜像
  • 做的网站上传到服务器六安人论坛招聘求职
  • iis做网站上传速度慢药品包装设计
  • 上海市建设工程咨询行业协会常州百度推广优化
  • 网站建设年费做植物提取物的专业网站
  • 淘宝有WordPress网站搭建吗温州市建设厅网站首页
  • 如何把地图放到网站上官方网站开发与定制
  • 国外网站做推广新泰网站制作
  • 西安的商城网站吉林大学学院网站建设群
  • 大型网站开发模型苏州优化平台
  • 哈尔滨网站设计哪里有做长泰人才网597最新招聘信息
  • wordpress文章内容不带标签重庆谷歌seo关键词优化
  • 白酒招商网站大全网站建设目标 优帮云
  • 万网做网站做外贸自己公司的网站一定要吗
  • 设计常去的网站百度广告推广怎么收费
  • 什么软件做电影短视频网站在线做头像的网站
  • 贵阳网站建设建站解决方案国外建设网站情况
  • 运营网站需要多少钱html火锅网页制作模板
  • 网站正在建设中 代码美团app开发费用
  • 网页升级访问站网络推广业务
  • 企业网站建设可行性分析 技能训练企业集团网站建设方案论文