首页 > 编程语言 >青岛市程序设计竞赛冲刺⑦(2022市北区程序设计竞赛小学组试题)

青岛市程序设计竞赛冲刺⑦(2022市北区程序设计竞赛小学组试题)

时间:2023-05-04 20:46:24浏览次数:37  
标签:竞赛 int 市北区 long freopen ans 程序设计 sum define

1.2的N次方

原题:

 解题思路:

送分题,找规律,不妨看出,有2,4,8,6的规律,直接运算即可

AC代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
int x;//0<x<1000000000 ²»ÓÃÌØÅÐ0µÄÇé¿ö 
int main(){
	freopen("count.in","r",stdin);
	freopen("count.out","w",stdout);
	while(cin>>x){
		int p=x%4;
		if(p==0)cout<<"6\n";
		else if(p==1)cout<<"2\n";
		else if(p==2)cout<<"4\n";
		else cout<<"8\n";
	}	
	return 0;
}

  

2.连续自然数的和

原题:

 

解题思路:

先求出前缀和sum,再用map记录每一个和的出现次数,最后累加计算即可

AC代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N = 1e5+5;
map<int,int>mp;
int n,k,a[N],ans=0,sum[N];
int main(){
	freopen("sum.in","r",stdin);
	freopen("sum.out","w",stdout);
	mp[0]=1;
	cin>>n>>k;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		sum[i]=sum[i-1]+a[i];
		mp[sum[i]]++;
	}
	for(int i=1;i<=n;i++)if(mp[sum[i]-k])ans+=mp[sum[i]-k];
	cout<<ans;
	return 0;
}

  

3.栈桥旅游

原题:

 

解题思路:

大模拟,按题目要求模拟,用sum记录船的承重,ans取MAX(sum)就是答案

AC代码:

#include<bits/stdc++.h>
#define max(a,b) (a>b?a:b)
#define ll long long
using namespace std;
const int N = 1e5+5;
ll sum=0,ans=0;
int n,m,W,w[N],a;
bool flag[N];
int main(){
	freopen("zhanqiao.in","r",stdin);
	freopen("zhanqiao.out","w",stdout);
	memset(flag,0,sizeof(flag));
	cin>>n>>m>>W;
	for(int i=1;i<=n;i++)cin>>w[i];
	for(int i=1;i<=m;i++){
		cin>>a;
		ans=max(ans,sum);
		if(!flag[a]&&sum+w[a]<=W)sum+=w[a],flag[a]=1;
		else if(flag[a])sum-=w[a],flag[a]=0;
	}
	cout<<ans;
	return 0;
}

  

4.投喂修狗

原题:

 解题思路:

把修狗的高度想做一座山峰,先求出“谷底”,再从“谷底”向两边遍历,遍历完必定有没遍历到的地方,记录下来,接着遍历第二次,最后累加求得答案

AC代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 5e4+5;
int n,a[N],ans,b[N];
vector<int>s;
struct node{
	int l,r;
}m[N];
signed main(){
	freopen("dog.in","r",stdin);
	freopen("dog.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	if(a[1]<a[2])s.push_back(1);
	for(int i=2;i<n;i++)if(a[i]<a[i-1]&&a[i]<a[i+1])s.push_back(i);
	if(a[n]<a[n-1])s.push_back(n);
	for(int i=0;i<s.size();i++){
		int beg=s[i];
		b[beg]=1;
		for(int j=beg+1;a[j]>a[j-1]&&j<=n;j++)b[j]=max(b[j],b[j-1]+1);
		for(int j=beg-1;a[j]>a[j+1]&&j>=1;j--)b[j]=max(b[j],b[j+1]+1);
	}
	int i,tot=0;
	for(i=1;i<=n;i++){
		if(!b[i]){
			tot++;
			m[tot].l=i;
			int j;for(j=i+1;!b[j]&&j<=n;j++);
			m[tot].r=j-1;
			i=m[tot].r;
		}
	}
	for(int i=1;i<=tot;i++){
		for(int j=m[i].l;j<=m[i].r;j++){
			if(a[j]==a[j-1])if(a[j]==a[j+1]||a[j]<a[j+1])b[j]=1;
			if(a[j]>a[j-1])b[j]=b[j-1]+1;
		}
		for(int j=m[i].r;j>=m[i].l;j--){
			if(b[j])continue;
			if(a[j]==a[j+1])b[j]=1;
			if(a[j]>a[j+1])b[j]=max(b[j],b[j+1]+1);
		}
	}
	for(int i=1;i<=n;i++)ans+=b[i];
	cout<<ans;
	return 0;
}

  

标签:竞赛,int,市北区,long,freopen,ans,程序设计,sum,define
From: https://www.cnblogs.com/zhanghx-blogs/p/17372446.html

相关文章

  • matlab程序设计,承接研究范围:综合能源系统优化调度,主从博弈,综合需求响应,碳交易机制,阶梯
    matlab程序设计,承接研究范围:综合能源系统优化调度,主从博弈,综合需求响应,碳交易机制,阶梯型碳交易机制,多时间尺度优化。ID:41100678701976813......
  • 工程数学--上机实验四:共轭梯度法程序设计
    首先,根据目标函数,我们计算其梯度和海森矩阵:symsx1x2;f=100*(x2-x1^2)^2+(1-x1)^2;grad_f=gradient(f,[x1,x2]);grad_f_fun=matlabFunction(grad_f);hes_f=hessian(f,[x1,x2]);hes_f_fun=matlabFunction(hes_f);其中,grad_f_fun和hes_f_fun是把符号......
  • 工程数学--上机实验二:最速下降法程序设计
    这是一个无约束优化问题,可以使用最速下降法(也称负梯度法)求解。按照要求,我来给出MATLAB代码:、%定义目标函数f=@(x)100*(x(2)-x(1)^2)^2+(1-x(1))^2;%最速下降法求解%设定初始点和迭代终止准则x0_list=[-2,2;-3,3;0.5,-1.5];%多个不同的初始点max_iter=1......
  • 竞赛图
    竞赛图定义:\(n\)个点,任意两点之间有一条有向边的图性质:竞赛图一定存在一条哈密顿路径证明:考虑归纳,\(n=1\)的时候显然成立,现在已经求出\(n-1\)个点的竞赛图的哈密顿路径了,发现如果第\(n\)个点连出去的边都是指向其他点或者都是指向自己时,一定可以把这个点放到哈密顿路......
  • 青岛市程序设计竞赛冲刺⑥(2023第四届上海市青少年算法竞赛小学组试题)
    2.幸运数原题: 原代码:#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintN=1e7+5;lla[505]={0,6,8,66,68,86,88,666,668,686,688,866,868,886,888,6666,6668,6686,6688,6866,6868,6886,6888,8666,8668,8686,8688,8866,8868,8886,8888,6......
  • 知识竞赛小程序V6.0
    知识竞赛小程序V6.0前几天恰逢五四青年节,帮我们单位开发了一套知识竞赛类答题小程序,文章末尾有小程序码可以体验该小程序目前已完成用户授权,授权后答题、答题完成展示排名,完整支持知识竞赛答题活动的需求,答题目前已支持单选、多选、判断三种题型不详细介绍了,具体先上截图吧......
  • 面向对象程序设计题目集总结blog2-22206110-胡瑞杰
    一、前言第二次在博客园上发布面向对象程序设计题目集的总结博客。经过几周的学习,面向对象的理念更加深入。虽然已经学了些面向对象程序设计,学好这部分内容还是有较大难度。关于知识点本次的题目集所体现的知识点已经不仅限于Java的语法知识,还需要考虑设计问题,不......
  • C/C++《程序设计基础II》[2023-04-30]
    C/C++《程序设计基础II》[2023-04-30]2022级计算机专业《程序设计基础II》小组项目作业作业要求:1.分小组完成,2-4人一组(每个题目后面有人数要求,见附件1);2.任课老师按小组分配任务;3.作业时长为1周;4.提交内容为:WORD文档,内容包括:题目内容、算法分析、代码实现(要求加注释)、运行结......
  • 青岛市程序设计竞赛冲刺④(2019山东省小学组试题)
    1.随机数原题: 解题思路:求出输入值中的最大值,从这个数输出到6即可AC代码:#include<bits/stdc++.h>#definelllonglongusingnamespacestd;intx,y;intmain(){ freopen("random.in","r",stdin); freopen("random.out","w",stdout); cin>......
  • [练习记录] 《算法竞赛进阶指南》打卡活动
    89.a^b题目大意给\(a,b,p\)求\(a^b\modp\)。思路可以直接快速幂。当模数\(p\)为\(1\)的时候特判一下。代码lla,b,mod;llqpow(lla,llb){ llres=1; while(b){ if(b&1)res=res*a%mod; a=a*a%mod,b>>=1; } returnres;}in......