码蹄集部分题目(2024OJ赛19期;贪心集训)

2024-06-16 20:52

本文主要是介绍码蹄集部分题目(2024OJ赛19期;贪心集训),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1🐋🐋水温调节(黄金;贪心)

时间限制:1秒

占用内存:128M

🐟题目思路

贪心思路:先将两只水龙头的流速开到最大,温度高了,就把热水的流速降低一个单位,温度低了就把冷水的流速降低一个单位,当任意一个水龙头的流速小于0时结束循环。

【码蹄集进阶塔全题解08】算法基础:贪心 MT2080 – MT2092_哔哩哔哩_bilibili

🐟代码#include<bits/stdc++.h> 
​
using namespace std;
​
int main( )
{double t1,t2,x1,x2,t0;double y1,y2,t;double tmax=0x3f3f3f3f,ans1,ans2;cin>>t1>>t2>>x1>>x2>>t0;y1=x1;y2=x2;while(y1>=0&&y2>=0){t=(t1*y1+t2*y2)/(y1+y2);if(t>=t0){if(t<tmax) {tmax=t;ans1=y1;ans2=y2;}y2--;}else y1--;}cout<<ans1<<" "<<ans2;return 0;
}

2🐋🐋斐波那契数列的组合(黄金;贪心)

时间限制:1秒

占用内存:128M

🐟题目思路

  • 贪心思想:要最少数目,那么从大数来取最好。

【码蹄集进阶塔全题解09】算法基础:贪心 MT2093 – MT2105_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
const int maxm=1e6+50;
​
int minfbncn(int k)
{vector<int> f;f.push_back(1);f.push_back(1);while(1){if(f[f.size()-1]+f[f.size()-2]>1e9) break;f.push_back(f[f.size()-1]+f[f.size()-2]);}int cnt=0;for(int i=f.size()-1;i>=0;i--){if(k>=f[i]){cnt+=k/f[i];k=k-k/f[i]*f[i];}if(k==0) break;}return cnt;
}
​
int main( )
{int n;cin>>n;cout<<minfbncn(n)<<endl;return 0;
}

3🐋🐋数列分段(黄金;贪心)

时间限制:1秒

占用内存:64M

🐟题目思路

贪心思路:每个元素只有两个选择,并到当前段和自成一段。那也就是,每一段都尽可能地接近N即可。

【码蹄集进阶塔全题解09】算法基础:贪心 MT2093 – MT2105_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
int a[200000],n,m,ans;
int main( )
{cin>>n>>m;int sum=0;for(int i=1;i<=n;i++){cin>>a[i];if(sum+a[i]<=m) sum+=a[i];else{sum=a[i];ans++;}}cout<<ans+1;return 0;
}

4🐋🐋小码哥爱数字(钻石;贪心)

时间限制:1秒

占用内存:128M

🐟题目思路

贪心思路:从左到右遍历这个字符串,只要前面一个数比后面的数要大,那就把前面这个数删掉;如果遍历完了都没有这样的数,就删掉最后一位。

【码蹄集进阶塔全题解09】算法基础:贪心 MT2093 – MT2105_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
string n;
int k,po0;
int main( )
{cin>>n>>k;int len=n.length();while(k--){for(int i=0;i<len;i++){if(n[i]>n[i+1]){for(int j=i;j<len;j++) n[j]=n[j+1];len--;break;}}}while(po0<len-1&&n[po0]=='0') po0++;for(int i=po0;i<len;i++) cout<<n[i];return 0;
}

5🐋🐋甜品供应(钻石;贪心)

时间限制:1秒

占用内存:128M

🐟题目思路

【码蹄集进阶塔全题解09】算法基础:贪心 MT2093 – MT2105_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
const int N=1e5+5;
struct node
{int l,r;bool operator<(const node &a) const{if(r==a.r) return l<a.l;return r<a.r;}
}people[N];
​
struct sweet
{int v,num;//这里要重载>,因为后边用的是小根堆;如果是大根堆,重载<就行;否则编译不通过bool operator>(const sweet &a) const{return v>a.v;}
};
int C,L,cnt[N],ans;
priority_queue<sweet,vector<sweet>,greater<sweet> > q,tmp;
​
int main( )
{cin>>C>>L;for(int i=1;i<=C;i++) cin>>people[i].l>>people[i].r;sort(people+1,people+1+C);for(int i=1;i<=L;i++){sweet t;cin>>t.v>>t.num;cnt[t.v]+=t.num;q.push(t);}for(int i=1;i<=C;i++){while((!q.empty())&&q.top().v<people[i].l){tmp.push(q.top());q.pop();}if(!q.empty()&&q.top().v<=people[i].r){ans++;cnt[q.top().v]--;if(cnt[q.top().v]==0) q.pop();}while(!tmp.empty()){q.push(tmp.top());tmp.pop();}}cout<<ans;return 0;
}

6🐋🐋活动安排(黄金;贪心)

时间限制:1秒

占用内存:128M

🐟题目思路

【码蹄集进阶塔全题解09】算法基础:贪心 MT2093 – MT2105_哔哩哔哩_bilibili

🐟代码

#include<bits/stdc++.h> 
​
using namespace std;
const int N=5e5+5;
int n,ans;
struct NODE
{int l,r;
}node[N];
bool cmp(NODE a,NODE b){return a.r<b.r;}
int main( )
{cin>>n;for(int i=1;i<=n;i++) cin>>node[i].l>>node[i].r;sort(node+1,node+1+n,cmp);int temp=0;for(int i=1;i<=n;i++){if(node[i].l>=temp){temp=node[i].r;ans++;}}cout<<ans;return 0;
}

有问题我们随时评论区见~

⭐点赞收藏不迷路~

这篇关于码蹄集部分题目(2024OJ赛19期;贪心集训)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067520

相关文章

usaco 1.3 Barn Repair(贪心)

思路:用上M块木板时有 M-1 个间隙。目标是让总间隙最大。将相邻两个有牛的牛棚之间间隔的牛棚数排序,选取最大的M-1个作为间隙,其余地方用木板盖住。 做法: 1.若,板(M) 的数目大于或等于 牛棚中有牛的数目(C),则 目测 给每个牛牛发一个板就为最小的需求~ 2.否则,先对 牛牛们的门牌号排序,然后 用一个数组 blank[ ] 记录两门牌号之间的距离,然后 用数组 an

poj 3190 优先队列+贪心

题意: 有n头牛,分别给他们挤奶的时间。 然后每头牛挤奶的时候都要在一个stall里面,并且每个stall每次只能占用一头牛。 问最少需要多少个stall,并输出每头牛所在的stall。 e.g 样例: INPUT: 51 102 43 65 84 7 OUTPUT: 412324 HINT: Explanation of the s

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

题目1254:N皇后问题

题目1254:N皇后问题 时间限制:1 秒 内存限制:128 兆 特殊判题:否 题目描述: N皇后问题,即在N*N的方格棋盘内放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在同一斜线上。因为皇后可以直走,横走和斜走如下图)。 你的任务是,对于给定的N,求出有多少种合法的放置方法。输出N皇后问题所有不同的摆放情况个数。 输入

题目1380:lucky number

题目1380:lucky number 时间限制:3 秒 内存限制:3 兆 特殊判题:否 提交:2839 解决:300 题目描述: 每个人有自己的lucky number,小A也一样。不过他的lucky number定义不一样。他认为一个序列中某些数出现的次数为n的话,都是他的lucky number。但是,现在这个序列很大,他无法快速找到所有lucky number。既然

POJ2010 贪心优先队列

c头牛,需要选n头(奇数);学校总共有f的资金, 每头牛分数score和学费cost,问合法招生方案中,中间分数(即排名第(n+1)/2)最高的是多少。 n头牛按照先score后cost从小到大排序; 枚举中间score的牛,  预处理左边与右边的最小花费和。 预处理直接优先队列贪心 public class Main {public static voi

ural 1820. Ural Steaks 贪心

1820. Ural Steaks Time limit: 0.5 second Memory limit: 64 MB After the personal contest, happy but hungry programmers dropped into the restaurant “Ural Steaks” and ordered  n specialty steaks

ural 1014. Product of Digits贪心

1014. Product of Digits Time limit: 1.0 second Memory limit: 64 MB Your task is to find the minimal positive integer number  Q so that the product of digits of  Q is exactly equal to  N. Inpu

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目: 牛牛发明了一种新的四舍五入应用于整数,对个位四舍五入,规则如下 12345->12350 12399->12400 输入描述: 输入一个整数n(0<=n<=109 ) 输出描述: 输出一个整数

笔记整理—内核!启动!—kernel部分(2)从汇编阶段到start_kernel

kernel起始与ENTRY(stext),和uboot一样,都是从汇编阶段开始的,因为对于kernel而言,还没进行栈的维护,所以无法使用c语言。_HEAD定义了后面代码属于段名为.head .text的段。         内核起始部分代码被解压代码调用,前面关于uboot的文章中有提到过(eg:zImage)。uboot启动是无条件的,只要代码的位置对,上电就工作,kern