c/c++语言开发共享青藤 最值、求和、计数 枚举巩固 1+2

青藤 最值、求和、计数 枚举巩固 1+2第一题 一维前缀和**题目大意:**给你n个数,q次询问区间[l,r]的数的总和。**分析:**要先做好预处理,到算的时候就只要减去之前的和就行了。代码#include <bits/stdc++.h>using namespace std;int a, n, m;int s[100005];int main() { cin >> n >> m; for (int i = 1; i <= n;


青藤 最值、求和、计数 枚举巩固 1+2

第一题 一维前缀和
**题目大意:**给你n个数,q次询问区间[l,r]的数的总和。
**分析:**要先做好预处理,到算的时候就只要减去之前的和就行了。
代码

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

第二题 二维前缀和
**题目大意:**给出一n行m列的矩阵,q次询问左上角为(x1,y1) ,右下角为(x2,y2)的子矩阵中数的和
**分析:**要先做好预处理,到算的时候就只要其他子矩阵的和加上重复的子矩阵就行了。
代码

#include<bits/stdc++.h> using namespace std; int a[10003][10003],s[10003][10003]; int main() { 	ios::sync_with_stdio(false);     cin.tie(0); 	int n,m,q; 	cin>>n>>m>>q; 	for(int i=1;i<=n;i++) 		for(int j=1;j<=m;j++) 		{ 			cin>>a[i][j]; 			s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j]; 		} 	for(int i=1;i<=q;i++)	 	{ 		int x1,x2,y1,y2; 		cin>>x1>>y1>>x2>>y2; 		printf("%dn",s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1]); 	} 	return 0; } 

第三题 小鱼的航程
题目大意: 一只鱼一天行250km,周末休息,告诉你从星期x开始,游了n天,求总共游了几km。
**分析:**要一周一周算,按日算会超时。
代码

#include <bits/stdc++.h> using namespace std; long long x, x2, n, t, i, t2; int main() {     scanf("%lld%lld", &x, &n);     for (i = 1; i <= 7; i++) {         if (x == 8)             x = 1;         if (x < 6)             t++;         x++;     }     t2 = n / 7 * t;     t = 0;     for (i = 1; i <= n % 7; i++) {         if (x == 8)             x = 1;         if (x < 6)             t++;         x++;     }     cout << (t2 + t) * 250;     return 0; } 

第四题 楼层编号
题目大意: 小林住在m层,给你一个高能数字t,如果存在高能数字那么该楼层就不存在,让你求小林真实的楼层。
分析: 只要枚举每一天,是否存在高能数字就行了。然后再天数减去记录的数量。
代码

#include<bits/stdc++.h> using namespace std; int main() { 	int n,t,sum=0,k,ni; 	cin>>n>>t; 	for(int i=1;i<=n;i++) 	{ 		ni=i; 		while(ni!=0) 		{ 			if(ni%10==t) 			{ 				sum++; 				break; 			} 			ni/=10; 		} 	} 	cout<<n-sum<<endl; 	return 0; } 

c/c++开发分享青藤 最值、求和、计数 枚举巩固 1+2地址:https://blog.csdn.net/coollend/article/details/111052772

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ctvol.com/c-cdevelopment/596413.html

(0)
小游戏开发小游戏开发
上一篇 2021年5月8日
下一篇 2021年5月8日

精彩推荐