首页 > 编程语言 >2024CSP-X 山东小学组题目程序代码

2024CSP-X 山东小学组题目程序代码

时间:2024-11-06 20:57:53浏览次数:1  
标签:1000010 cnt 题目 int sum long using 2024CSP 程序代码

购物(buy)

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n,m,w;
 4 int a[200010];
 5 int main() {
 6     cin>>n>>m>>w;
 7     for(int i=1; i<=n; i++) cin>>a[i];
 8     sort(a+1,a+1+n,greater<int>());
 9     long long ans=0,t=0,sum=0,num=0;
10     for(int i=1; i<=n; i++) {
11         ans+=a[i];
12         sum+=a[i];
13         t++;
14     //    cout<<ans<<' '<<sum<<' '<<t<<endl;
15         if(t==m) {
16             if(w<sum) ans=ans-sum+w;
17             sum=0;
18             t=0;
19         }
20     }
21     if(w<sum) ans=ans-sum+w;
22     cout<<ans<<endl;
23     return 0;
24 }

消灭怪兽 (monster) 45分暴力枚举

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n,k;
 4 int a[1000010];
 5 long long sum[1000010];
 6 int main() {
 7     cin>>n>>k;
 8     for(int i=1; i<=n; i++) {
 9         cin>>a[i];
10         sum[i]=sum[i-1]+a[i];
11     }
12     int cnt=0;
13     for(int i=1; i<=n; i++) {
14         for(int j=i; j<=n; j++) {
15             long long t=sum[j]-sum[i-1];
16             if(t%k==0) {
17                 cnt++;
18                 //cout<<i<<' '<<j<<' '<<t<<endl; 
19             }
20         }
21     }
22     cout<<cnt;
23     return 0;
24 }

消灭怪兽 (monster) 100分

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n,k;
 4 int a[1000010];
 5 long long sum[1000010];
 6 long long cnt[2*1000010];
 7 int main() {
 8     cin>>n>>k;
 9     long long ans=0;
10     for(int i=1; i<=n; i++) {
11         cin>>a[i];
12         sum[i]=sum[i-1]+a[i];
13         //if(a[i]%k==0) ans++;//区间中一个数,这个数是K的倍数
14         cnt[sum[i]%k]++;
15         //cout<<sum[i]<<" "<< sum[i]%k<<endl;
16     }
17     cnt[0]++;
18     for(int i=0; i<k; i++) {
19         if(cnt[i]>1) {
20             ans+=(1+cnt[i]-1)*(cnt[i]-1)/2;
21             //cout<<i<<' '<<cnt[i]<<' '<<(1+cnt[i]-1)*(cnt[i]-1)/2<<endl;
22         }
23     }
24     cout<<ans;

翻硬币 (coin)

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n,m;
 4 int a[2000010];
 5 int main() {
 6     cin>>n>>m;
 7     for(int i=1; i<=m; i++) {
 8         int x,y;
 9         cin>>x>>y;
10         a[x]+=1;
11         a[y+1]-=1;
12     }
13     int sum=0;
14     for(int i=1; i<=n; i++) {
15         sum+=a[i];
16         if(sum%2==0) cout<<0;
17         else cout<<1;
18     }
19     return 0;
20 }

刷题 (question)

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 long long n,m,r;
 4 long long a[1000010];
 5 
 6 long long check(long long mid) {
 7     long long s=0,t=0,mmax=0;
 8     for(int i=1; i<=n; i++) {
 9         s=s+a[i];
10         if(a[i]>mmax) mmax=a[i];
11         //cout<<"before "<<i<<' '<<t<<' '<<s<<' '<<mmax<<endl;
12         if(s>mid+mmax) {
13             s=a[i];
14             t++;
15             mmax=a[i];
16         }
17         //cout<<"after "<<i<<' '<<t<<' '<<s<<' '<<mmax<<endl;
18     }
19     if(s!=0) t++;
20     //cout<<"** "<<mid<<' '<<t<<endl;
21     return t;
22 }
23 
24 
25 int work(long long l,long long r) {
26     while(l<r) {
27         long long mid=(l+r)/2;
28         long long t=check(mid); 
29         ///cout<<endl<<"&& "<<l<<' '<<r<<" "<<t<<endl;
30         if(t<=m) r=mid;
31         else l=mid+1;
32         
33     }
34     return l;
35 }
36 
37 int main() {
38     cin>>n>>m;
39     for(int i=1; i<=n; i++) {
40         cin>>a[i];
41         r+=a[i];
42     }
43     cout<<work(0,r+1);
44     //cout<<check(5370);
45     return 0;
46 }

 

标签:1000010,cnt,题目,int,sum,long,using,2024CSP,程序代码
From: https://www.cnblogs.com/mantou20210331/p/18531027

相关文章

  • SQL,力扣题目569,员工薪水中位数
    一、力扣链接LeetCode_569二、题目描述表: Employee+--------------+---------+|ColumnName|Type|+--------------+---------+|id|int||company|varchar||salary|int|+--------------+---------+id是该表的主......
  • 力扣题目解析--三数之和
    题目给你一个整数数组 nums ,判断是否存在三元组 [nums[i],nums[j],nums[k]] 满足 i!=j、i!=k 且 j!=k ,同时还满足 nums[i]+nums[j]+nums[k]==0 。请你返回所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例1:输入:nums=[......
  • 毕业设计 免费送源码68701-SpringBoot自然灾害应急救灾物资共享管理系统,【计算机毕业
    摘 要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势。物资共享当然也不例外。自然灾害应急救灾物资共享管理系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用Java技术构建的一个管理系统。整个开发......
  • 蓝桥杯2022年题目解
    问题描述十进制整数 22 在十进制中是 11 位数,在二进制中对应 1010 ,是 22 位数。十进制整数 2222 在十进制中是 22 位数,在二进制中对应 1011010110 ,是 55 位数。请问十进制整数 20222022 在二进制中是几位数?解法一:#include<stdio.h>#include<stdlib.h......
  • 【接口】题目
    1、接口测试流程是?我们项目是一个嵌入式项目,我们目前支持终端包括WEB、APP、H5端。接口类测试,涉及的接口有HTTPS协议接口、WebSocket接口测试。整个接口测试流程是首先进行需求分析,理解业务需求和接口需求并确定接口的功能和性能要求。进行初步了解后,再进行需求澄清,在需求澄清过......
  • 力扣题目解析--整数转罗马数
    题目七个不同的符号代表罗马数字,其值如下:符号值I1V5X10L50C100D500M1000罗马数字是通过添加从最高到最低的小数位值的转换而形成的。将小数位值转换为罗马数字有以下规则:如果该值不是以4或9开头,请选择可以从输入中减去的最大值的符号,将该符号附加到结果,减去其值,然后将......
  • 循环程序设计的实际应用——两道题目
    一、设计一个程序,使之能够输入够从键盘任意输入一个正整数n 要求:(1)求出它是几位数;(2)按逆序分别输出每一位数字;(3)计算n的每一位数字相加之和并输出。例如输入n=1234,则输出n是4位数,各位数字是4,3,2,1,数字之和为10。思路:在这个程序中,我们需要将数字倒过来排序,......
  • Linux笔试题目记录(1)
    文章目录一、Linux文本三剑客---grep、sed、awk二、Linux内核模块相关命令三、Linux内核日志级别四、Linux内存管理之kmallockzallocvmallocmalloc和get_free_page()的区别五、Linux的调度策略六、(多选)下列哪些是linux驱动开发中常用的调试技术()七、简述GDB常见的调......
  • 2024CSP-S邮寄
    前言去年被沉重打击到了,不过从此以后心态就好很多了,不会因为什么考试动不动就崩溃了。考前一直在认真复习,也停了课,甚至差点错过运动会。从国庆开始听了几天课,消化课件,然后考试。考试的稳定性不高,有时脑子清醒就能比较清楚自己应该做什么,如何分配时间以及写下对拍;但有时睡了觉起......
  • 《上海市计算机学会竞赛平台2024年8月月赛丙组题目T1 统计得分 T2 等差数列的素性 T3
    T1统计得分内存限制: 256 Mb时间限制: 1000 ms题目描述在一场知识竞赛中,选手答对一题得 11 分,答错不得分且要倒扣 11 分,但扣分不能让分数小于 00。给定一个由 Y 及 N 构成的字符序列,答对记为 Y,答错记为 N。选手一开始从 00 分开始,请输出选手最后的得分......