C49-桶思想+区间和
2025-05-03 10:51:04
发布于:江苏
23阅读
0回复
0点赞
一、利用前缀和计算区间和
理解并使用区间和的计算公式


实例 A336.前缀和
#include<iostream>
using namespace std;
int n,m;
int a[100005]={};
int s[100005];
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>a[i];
        s[i] = s[i-1] + a[i];//预处理前缀和
    }
    for(int i=1;i<=m;i++){
        int l,r;
        cin>>l>>r;
        cout<<s[r] - s[l-1]<<endl;//计算区间和
        
    }
}
二、桶思想
1. 选班长
某班级共有8为学生,老师决定选择一位班长, 每个同学参与投票,给出每位同学的投票情况,
请输出班长。
输入:输入8个数字表示每一位同学投票的结果,2 5 7 2 3 3 3 4 
输出:
第1个选手的票数为:0票 
第2个选手的票数为:2票 
...
班长是第3号选手, 票数为3票 
#include<iostream>
using namespace std;
int vote, b[10];  
int main(){
	for (int i=1; i<=8; i++){
		cin>>vote;
		b[vote] ++;
	}
	int maxx = 0;	//下标 
	for (int i=1; i<=8; i++){
		printf("第%d个选手的票数为:%d票\n", i, b[i] );
		if (b[i] > b[maxx]){
			maxx = i; 
		}
	}
	
	printf("班长是第%d号选手,票数为%d票\n", maxx, b[maxx]) ;
	return 0;
}

这里空空如也



有帮助,赞一个