马蹄集oj赛(双周赛第二十六次)

目录

斐波那契数列的组合

三国杀

数列分段

小码哥的跳棋游戏新编

能量供应

小码哥爱数字

最小串

小船过河

摘果子

泼墨淋漓

很重的枪

小码哥的布阵指挥


斐波那契数列的组合

#include<bits/stdc++.h> using namespace std;// 斐波那契数列 1 1 2 3 5 8 13 21 34 55 89 144int main( )
{int n;int temp = 0;cin >> n;vector<int> v;v.insert(v.end(), 0); v.insert(v.end(), 1);for(int i=1;i<n;i++){temp = v[i]+v[i-1];if(temp>n){break;}v.insert(v.end(),temp);}int len = v.size()-1;int sum = 0;int num = 0;for(int i=len;i>0;i--){sum += v[i];num++;if(sum>n){sum -= v[i];num--;}else if(sum==n){cout << num ;break;}else{continue;}}return 0;
}

三国杀


少难度:黄金时间限制:1秒四占用内存:128 M
小码哥和小码妹酷爱三国杀。在一局游戏中,每人有n名武将,每名武将有一个武力值。每一回合,每人挑选一名武将作战,武力值大的获胜,同时该武将进入弃牌堆。如果提前知道了小码妹的出牌顺序,小码哥能最多获胜几回合?
格式
输入格式:第一行包含一个正整数n;第二行 n 个正整数 ai,表示小码哥的武将第三行 n 个正整数 b ,表示小码妹的武将。
输出格式:一个整数,输出小码哥最多获胜的回合数。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;int i,j,k,n,m,t,a[1000005];
multiset<int> s;int main() {cin>>n;for(i=1;i<=n;i++){cin>>k;s.insert(k);}for(i=1;i<=n;i++) cin>>a[i];sort(a+1,a+n+1);for(i=n;i>=1;i--){auto it = s.upper_bound(a[i]);if(it!=s.end()){s.erase(it);t++;}}cout<<t;return 0;}

数列分段


巴 占用内存:128 M少难度:黄金时间限制:1秒
对于给定的一个长度为N的正整数数列 A;,现要将其分成连续的若干段,并且每段和不超过M(可以等于 M),问最少能将其分成多少段使得满足要求。
格式
输入格式:第一行包含两个正整数 N,M ,表示了数列 A,的长度与每段和的最大值,第二行包含 N 个空格隔开的正整数 A;,如题目所述。
输出格式:一个正整数,输出最少划分的段数。

def main():#code hereN,M=map(int, input () .split ())num=list(map(int, input () .split ()))s=0res=1for i in range(N):if s+num[i]<=M:s+=num[i]else:res+=1 s=num[i]print(res)passif __name__ == '__main__':main();

小码哥的跳棋游戏新编


了难度:黄金时间限制:1秒四占用内存:128M
小码哥喜爱跳棋。跳棋游戏在一条直线上,一共几个位置(1~n),每个位置有3个状态:0表示没有棋子,1表示红棋子,2表示蓝棋子。在起始的点(坐标为8)没有棋子。小码哥的棋子自然是能通过没有棋子的位置。当面前有1个棋子时,小码哥可以直接跳过。当有两个及以上不同颜色棋子连在一起时,小码哥的棋子是跳不过去的。这时候,就要花费能量,破坏掉一些棋子,才能跳过。但小码哥的棋子是经过升级的,如果一连串相同颜色的棋子在一起时,小码哥是可以直接跳过的。已知破坏一枚棋子需要花费一点能量。现在求小码哥到达终点(坐标为几+1)需要花费至少多少能量?
格式
输入格式:第一行包含一个正整数 n;
第二行 n 个整数 a;(1 <i< n),表示棋盘的状态。
输出格式:一个整数,输出最小耗费的能量数。

#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 7;
int a[N];
int main()
{int n;cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];}int ans = 0;for (int i = 1; i <= n; i++) {if (a[i] && a[i - 1] && a[i] != a[i - 1]) {a[i] = 0;ans++;}}cout << ans << endl;return 0;
}

能量供应


难度:钻石时间限制:1秒巴 占用内存:128 M
最近小码哥迷上了一款建造管理类游戏,游戏中的设施需要能量塔提供能量,设施运行时需要一定数量的能量塔在附近才能运作,不同的设施需要的能量塔的数量以及能链接到能量塔的范围也不一样,超出设施链接范围的能量塔无法为设施提供能量,不同设施可以重复利用同一座能量塔。
现在小码哥修建了一条长为n的道路来放置能量塔,但能量塔的修建成本稍高,小码哥不想花太多时间收集资源建造过多能量塔,现在小码哥用一个区间s,e告诉你每个设施链接到能量塔的有效范围,以及每个设施需要的能量塔数量t,请你告诉他最少修建多少个能量塔即可让所有设施运作?
格式
输入格式:两个正整数 n,b,表示道路的长度和设施的数量;接下来6行每行三个正整数 s,e,t,表示设施的链接范围的起始和结尾以及需要的能量塔数量。

#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;const int maxn = 100005;int n, b;vector<int> se[maxn];vector<int> st[maxn];int ans[maxn], len[maxn];int main() {cin >> n >> b;for(int i = 1; i <= b; i++) {int s, e, t;cin >> s >> e >> t;se[s - 1].push_back(e);st[s - 1].push_back(t);len[s - 1]++;}for(int i = 0; i <= n; i++) {if(i != 0) ans[i] = max(ans[i - 1], ans[i]);for(int j = 0; j < len[i]; j++) {ans[se[i][j]] = max(ans[se[i][j]], ans[i] + st[i][j]);int tt = ans[se[i][j]] - se[i][j];for(int k = i + 1; k < se[i][j]; k++)ans[k] = max(ans[k], tt + k);}}cout << ans[n];return 0;}

小码哥爱数字


难度:钻石◎ 时间限制:1秒巴占用内存:128 M
小码哥很喜欢数字,有一天他找到老师给他出一道有关数字的题目。老师给他一个位数很多的正整数N(不超过 250位),让小码哥去掉其中任意k个数字后剩下的数字按原左右次序将组成一个新的非负整数。小码哥觉得老师在刁难他(因为小码哥才一年级),所以他找身为程序员的你编程对给定的N 和k寻找一种方案使得剩下的数字组成的新数最小。
格式
输入格式:(正整数,不超过250位),不必考虑前导0;入
(需要删除的数字个数),保证有输出,即 k小于n的位数。k
输出格式:最后剩下的最小数。

from collections import deque,Counter
from queue import PriorityQueuedef main():#code heres = str(int(input()))k = int(input())n = len(s)bits = n-k;que = PriorityQueue()for i in range(n-bits):que.put((s[i],i))cur_pos = -1ans = []all_zero = Truepos = Nonefor i in range(n-bits,n):que.put((s[i],i))while que.queue[0][1] <= cur_pos:que.get()v,idx = que.get()ans.append(v)if v!= '0':if all_zero:pos = len(ans)-1all_zero = Falsecur_pos = idxif all_zero:print(0)return print(''.join(ans[pos:]))if __name__ == '__main__':main();

最小串


少 难度:钻石时间限制:1秒巴 占用内存:128 M
给定一个由 8,组成的字符串S。可以交换相邻,1或1,2的位置(例1210)请输出原字符串经过任意转换后字典序最小的字符串。原字符串如:1221013长度不超过 105
格式
输入格式:字符串 S
输出格式:转化后字典序最小的字符串

#include <bits/stdc++.h>using namespace std;void solve() {string str, res; cin >> str;int n = str.length(), one = 0;for (int i = 0; i < n; ++i) one += str[i] == '1';for (int i = 0; i < n; ++i)if (str[i] == '2') {res += string(one, '1');for (int j = 0; j < n; ++j)if (str[j] != '1')res += str[j];cout << res << "\n";return;} else if (str[i] == '0') {int zero = 0, p = i;while (p < n && str[p] != '2') zero += str[p++] == '0';res += string(zero, '0');res += string(one, '1');for (int j = p; j < n; ++j) if (str[j] != '1') res +=str[j];cout << res << "\n";return;}cout << str << "\n";}int main() {ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);solve();return 0;}

小船过河


难度:黄金。时间限制:1秒四占用内存:128 M
几个人想要过河,但现在只有一条小船(有船夫)。小船每次最多载两人过河(不考虑船夫),且有最大承载重量t。请计算小船最少要来回几次。
格式
输入格式:第一行输入2个整数n和t(0 <n<10',0<t< 232 );第二行输入 n个整数代表每个人的体重(范围:[1,232-1],均小于t)。
输出格式:输出一个整数。

#include <bits/stdc++.h>using namespace std;int main() {cin.tie(NULL)->ios_base::sync_with_stdio(false);int n, m;cin >> n >> m;vector<int> v(n);for (auto &x : v)cin >> x;multiset<int> s;for (auto x : v)s.insert(x);int ans = 0;while (!s.empty()) {auto x = *s.rbegin();s.erase(s.find(x));if (!s.empty() && s.upper_bound(m - x) != s.begin())s.erase(prev(s.upper_bound(m - x)));++ans;}cout << ans << endl;return 0;}

摘果子


难度:钻石时间限制:1秒巴 占用内存:128 M
在一个果园中,有几种果树,他们分布在一条数轴上,有独立的坐标。小码哥被奖励了许多果子,但是这些果子需要他自己去摘,小码哥摘一次果子需要1分钟。
现在小码哥在第一颗果树下开始行走,从“棵走到“-1棵需要t;的时间。如果小码哥选择在这棵果树下摘,那么第一个1分钟将会摘下 ai的果子,第二次摘将摘下 ai-d;个果子,第三次将摘下 ai-2*d个果子,以此类推。但是小码哥的时间有限,只有t的总时间来摘果子。
请你帮助他算出,可以摘下的最大果子数是多少?
格式
输入格式:第一行输入正整数 n,t;第二行 n 个数,表示第一次可以摘的果子数 ai;第三行 n 个数,表示每次摘减少的可摘数 d;第四行几-1个数,表示数之间的间隔行走时间t

#include<bits/stdc++.h>using namespace std;int n,m,ct;long long ans;long long f[30][200005];int a[30],d[30],t[30];priority_queue<int>q;void solve(int w){
int sum=m-t[w];long long rans=0;if(sum<0) return ;for(int i=1;i<=w;i++){int ct=a[i];for(int j=1;j<=sum;j++){q.push(ct);ct-=d[i];if(ct<0) break;}}while(sum>0 && !q.empty()){rans+=q.top();q.pop();sum--;}ans=max(ans,rans);while(!q.empty()) q.pop();}int main(){cin>>n>>m;for(int i=1;i<=n;i++) cin>>a[i];for(int i=1;i<=n;i++) cin>>d[i];for(int i=2;i<=n;i++) cin>>t[i];for(int i=3;i<=n;i++) t[i]+=t[i-1];for(int i=1;i<=n;i++) solve(i);cout<<ans;return 0;}

泼墨淋漓


。时间限制:1秒四占用内存:128 M乡难度:黄金
小码哥有 n幅画,每幅画都有一个编号 ;,编号为非负数且可以相同。他想改变一些画的编号,使得幅画使用的不同编号数量不超过 k(1<k<n<200000),问最少需要改变多少幅画的编号?n
格式
输入格式:第一行输入 n,k;
第二行输入 ai。
输出格式:输出需要改变编号的画的最少数量。

#include<bits/stdc++.h> using namespace std;int n,k;
map<int,int> cnt;
vector<int> a;
int main( )
{cin>>n>>k;
for (int i=1,x;i<=n;++i){
cin>>x;
if(cnt.count (x))++cnt[x];
else cnt [x]=1;
}
for (map<int,int>::iterator it=cnt.begin();it!=cnt.end();++it)a.emplace_back(it->second);
sort (a.begin(),a.end ());
if(a.size()<=k){cout<<0<<endl;return 0;} 
int sum(0);
for (int i=1;i<=k;++i)
sum+=a[a.size()-i];
cout<<n-sum<<endl;return 0;
}

很重的枪


难度:白银巴: 占用内存:128 M时间限制:1秒
小码哥在玩打怪游戏,他的面前有n个怪,第个怪的血量为 a;。对于一个怪物,他有两种攻击方式:
1.使用 a次普通攻击消灭该怪物;
2.施放一次技能消灭该怪物。
小码哥最多只能使用 k 次技能,他想知道最少使用多少次普通攻击就可以消灭所有怪物。
格式
输入格式:第一行输入 n,k;
第二行输入 ai。
其中:0≤ai≤10°,1≤k<n<2x105
输出格式:输出使用普通攻击的最少次数

#include<bits/stdc++.h> using namespace std;
int a[200010];
int main( )
{int i,j,k,m,n;long long sum=0;scanf("%d%d",&n,&k);for(i=1;i<=n;i++){scanf("%d",&a[i]);}sort(a+1,a+n+1);for(i=1;i<=n-k;i++){sum+=a[i];}printf("%lld\n",sum);return 0;
}

小码哥的布阵指挥


少难度:黄金◎时间限制:1秒巴占用内存:128 M
小码哥手上有几 个部队,驻扎在一条马路上,可以把这个马路看作一条轴,小码哥的指挥所在原点,第i个部队在 a”的位置,现在重新布置部队的位置,设布置后的位置为bi,要求bi>ai,且每个部队之间的距离大于等于 X
说明:部队从第1个开始按顺序进行处理。一旦处理完,位置就不再发生变化。所以你需要做出对于每只部队来说,当前情况下最优解(当前情况指,序号在他之前的部队已经更新过后的情况),即在满足上述条件下,部队离小码哥越近越好。
格式
输入格式:第一行两个整数 n,X
第二行 n 个整数,表示 a[]。

#include<bits/stdc++.h> using namespace std;
typedef long long int ll;
typedef unsigned long long int ull;
#define rall(a) a.rbegin(), a.rend()
#define fi first
#define se second
#define rep(i,s,n) for(int i=s;i<n;i++)
#define repd(i,s,n) for(int i=s;i>=n;i--)
const int MOD=1e9+7;
const int maxN=5e3+1;const int INF=2e9;const int MB=20;const int MAX_LEN=200001;ull s[MAX_LEN];ull p[MAX_LEN];void solve(){ll n,x;cin>>n>>x;rep(i,0,n){cin>>s[i];p[i]=s[i];}ll pre=s[0];rep(i,1,n){sort(p,p+i);ll temp;rep(j,0,i){temp=p[j]+x;if (j==i-1)break;else{if (p[j+1]-temp>=x)break;}} s[i]=temp>s[i]?temp:s[i];p[i]=s[i];}rep(i,0,n)cout<<s[i]<<" " ;}int main(){solve();return 0;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/9437.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uni-app小知识点记录

一、uniapp输入框禁止输入汉字 <u-form-item label"****" prop"****"><u-input v-model"绑定值" type"text" input"limitInput"/> </u-form-item>limitInput(e) {this.$nextTick(() > {绑定值 e.rep…

通过实例学C#之Stack类

简介 集合&#xff0c;后进先出。 构造函数 Stack<>() 不使用参数创建stack对象。 Stack<>(ICollection col) 使用数组col来创建stack对象。 常用属性 Count 获取stack中包含的元素数。 static void Main(string[] args) {string[] strArray { "monda…

LeetCode HOT 100刷题总结

文章目录 1 哈希1.1 1-1.两数之和&#x1f7e2;1.2 2-49.字母异位词分组&#x1f7e1;1.3 3-128.最长连续序列&#x1f7e1; 2 双指针2.1 4-283.移动零&#x1f7e2;2.2 6-15.三数之和&#x1f7e1;2.3 7-11.盛最多水的容器&#x1f7e1;2.4 8-42.接雨水&#x1f534; 3 滑动窗…

【Web漏洞指南】服务器端 XSS(动态 PDF)

【Web漏洞指南】服务器端 XSS&#xff08;动态 PDF&#xff09; 概述流行的 PDF 生成工具常见攻击载荷 概述 如果一个网页使用用户控制的输入创建 PDF&#xff0c;您可以尝试欺骗创建 PDF 的机器人以执行任意的 JS 代码。 因此&#xff0c;如果PDF 创建机器人发现某种HTML标签…

【退役之重学Java】如何保证消息的幂等性

除了要保证高可用之外&#xff0c;从消息队列里消费到重复的消息该怎么办&#xff1f;即如何保证消息的幂等性 一、场景 消费者刚消费完&#xff0c;还没有提交&#xff0c;突然重启&#xff0c;导致重启后又收到了相同的消息&#xff0c;这就是重复消费 二、保证幂等性是什么…

为Linux的shell脚本编程创建文件时自动生成注释信息如(!/bin/bash)等

大家在每一次创建一个新的以.s等后缀结束的文件时可能总是会面临重复写一些注释信息,其实我们只需写一个文件自动生成这些就可以避免这些麻烦 首先在/root下新建一个如.vimrc的文件&#xff08;vim /root/.vimrc&#xff09; 然后输入以下内容 autocmd BufNewFile *.py,*.cc,…

程控负载的功能实现原理

程控负载&#xff0c;顾名思义&#xff0c;就是可以通过程序控制其工作状态的负载设备。它的主要功能是模拟实际负载的工作状态&#xff0c;为电源、电子设备等提供稳定的工作电流或电压。程控负载的功能实现原理主要包括以下几个方面&#xff1a; 1. 电流和电压调节&#xff1…

小米poco x3 pro adbd 以root权限启动提供服务

1. 首先申请解锁 2. 按volume - 和 power开机进入fastboot 3.下载twrp-3.7.1_12-0-vayu.img 4. fastboot flash recoery twrp-3.7.1_12-0-vayu.img, 安装magisk, termux 5. 下载aosp的android11的aosp_arm64-img-11718355.zip,Artifact Viewer 6. 解压aosp_arm64-img-1…

开源模型应用落地-CodeQwen模型小试-SQL专家测试(二)

一、前言 代码专家模型是基于人工智能的先进技术&#xff0c;它能够自动分析和理解大量的代码库&#xff0c;并从中学习常见的编码模式和最佳实践。这种模型可以提供准确而高效的代码建议&#xff0c;帮助开发人员在编写代码时避免常见的错误和陷阱。 通过学习代码专家模型&…

云联网是一种可扩展的、全球性的网络解决方案,用于连接多个地理位置的云部署和数据中心,实现各种云服务之间以及云与现有数据中心之间的安全、高速、稳定的连接

云联网是一种可扩展的、全球性的网络解决方案&#xff0c;用于连接多个地理位置的云部署和数据中心&#xff0c;实现各种云服务之间以及云与现有数据中心之间的安全、高速、稳定的连接。它基于SDN&#xff08;软件定义网络&#xff09;技术&#xff0c;提供一点上云、多云连接及…

ChatGPT开源的whisper音频生成字幕

1、前言 好了&#xff0c;那接下来看一下whisper开源库的介绍 有五种模型大小&#xff0c;其中四种仅支持英语&#xff0c;提供速度和准确性的权衡。上面便是可用模型的名称、大致的内存需求和相对速度。如果是英文版的语音&#xff0c;直接想转换为英文。 本来我是想直接在我的…

情感分类学习笔记(2)

Shopping Reviews sentiment analysis | Ldys Blog (buptldy.github.io) 1. imdb_w2v Word2Vec(sizen_dim, min_count10) 在你给出的代码片段中&#xff1a; python复制代码 imdb_w2v Word2Vec(sizen_dim, min_count10) 这里你试图创建一个Word2Vec模型实例&#xff0c;…

魔法程序员的奥妙指南:Java基本语法

作为一名魔法程序员&#xff0c;精通Java语言是至关重要的。Java作为一种强大的编程语言&#xff0c;在编写优质代码和开发强大应用程序时发挥着重要作用。让我们深入探讨Java基本语法的关键要点&#xff0c;从注释到变量&#xff0c;无所不包&#xff01; Java基本语法的神秘魔…

Linux网络编程:TCP并发服务器实现

目录 1、前言 2、多进程代码实现 2.1 创建新的进程 2.2 客户端接收响应函数 2.3 僵尸进程处理 2.4 完整代码 2.5 代码测试 3、多线程代码实现 3.1 创建新的线程 3.2 线程函数定义 3.3 完整代码 3.4 代码测试 4、总结 1、前言 前面实现了基本的TCP编程&#xf…

7-Zip 的使用技巧

7-Zip 是一款功能强大的压缩软件&#xff0c;它提供了多种使用技巧来帮助用户更高效地管理文件。以下是一些7-Zip的使用技巧&#xff1a; 1. 压缩文件&#xff1a;用户可以通过7-Zip将文件或文件夹压缩成.7z或其他支持的格式&#xff0c;以节省空间。 2. 解压文件&#xff1a…

python列表推导式加if,else判断

在Python中&#xff0c;列表推导式&#xff08;List Comprehension&#xff09;是一种简洁的构建列表的方式。你可以在列表推导式中加入if和else语句来进行条件判断。 以下是一个简单的例子&#xff0c;假设我们有一个数字列表&#xff0c;我们想要创建一个新的列表&#xff0…

一文了解美国洛杉矶私有云的亮点优势

美国洛杉矶作为全球科技与经济的重要中心&#xff0c;其私有云服务的亮点优势备受瞩目。以下是对洛杉矶私有云优势的科普介绍。 首先&#xff0c;洛杉矶私有云的核心优势在于其安全性。在私有云环境中&#xff0c;数据被存储在专有的、隔离的服务器上&#xff0c;这意味着只有授…

同创优配正规炒股A股三大指数集体收涨 创指重回1900点关口

查查配5月9日电 周四,A股三大指数震荡上扬。截至收盘,上证指数涨0.83%,报3154.32点;深证成指涨1.55%,报9788.07点;创业板指涨1.87%,报1900.01点。总体上个股涨多跌少,全市场超4200只个股上涨。沪深两市今日成交额9011亿元,较上个交易日放量367亿元。 同创优配是AAA 级诚信经营…

GNU/Linux - 系统启动流程及rcS脚本介绍

Linux系统启动流程 在 Linux 系统启动过程中&#xff0c;会按特定顺序执行多个脚本和初始化例程&#xff0c;以使系统进入可用状态。虽然具体顺序可能因 Linux 发行版和版本而异&#xff0c;但以下是典型执行顺序的概括性概述&#xff1a; 1. BIOS/UEFI&#xff1a; 系统开机后…

【win10 文件夹数量和看到不一致查看隐藏文件已经打开,Thumb文件作妖】

目录 任务介绍&#xff1a;重命名规则修改前修改后 实现思路VB代码实现BUG犯罪现场&#xff08;眼见不一定为实&#xff09;破案1&#xff1a;抓顶风作案的反贼&#xff01;&#xff01;&#xff01;破案2&#xff1a;破隐身抓刺客&#xff01;&#xff01;&#xff01;杀器&am…