Swan学院社团招新,招新宣讲会分散在不同时间段,大一新生小花花想知道自己最多能完整的参加多少个招新宣讲会(参加一个招新宣讲会的时候不能中断或离开)。 【问题说明】这个问题是对几个相互竞争的招新宣讲会活动进行调度,它们都要求以独占的方式使用某一公共资源(小花花)。调度的目标是找出一个最大的相互兼容的活动集合。 活动选择问题就是要选择出一个由互相兼容的问题组成的最大子集合。 【温馨提示】应先将所有的活动按照结束时间升序排列,然后再选择可能的时间组合,并求出最大的组合数,使用qsort()排序函数是一个不错的选择。qsort 的函数原型是: void qsort(voidbase,size_t num,size_t width,int(__cdeclcompare)(const void,const void)); 功 能: 使用快速排序例程进行排序 头文件:stdlib.h 参数: 1 待排序数组首地址;2 数组中待排序元素数量;3 各元素的占用空间大小;4 指向函数的指针,用于确定排序的顺序

输入格式:

第一行为n,表示有n个招新宣讲会,接下来n行每行两个整数表示开始时间和结束时间,由从招新会第一天0点开始的小时数表示(24小时制)。 n <= 1000 。

输出格式:

最多参加的招聘会个数。

输入样例:

在这里给出一组输入。例如:

 3
9 10
10 20
8 15
 

输出样例:

在这里给出相应的输出。例如:

2
思路:先按照结束时间排序排序,结束越早的排在越前边,然后根据活动的开始和结束时间进行比较后在计算
#include<stdio.h>
#include<stdlib.h> struct act
{
int start;
int end;
}; struct act activity[1000]; int cmp(const void* a, const void* b)
{
struct act xx = *(struct act*)a;
struct act yy = *(struct act*)b; return xx.end - yy.end;
} int main(void)
{
int n; scanf("%d", &n);
for (int i = 0; i < n; i++)
{
scanf("%d %d", &activity[i].start,&activity[i].end);
} qsort(activity, n, sizeof(activity[0]), cmp); /*printf("\n");
for (int i = 0; i < n; i++)
{
printf("%d %d\n", activity[i].start, activity[i].end);
}
printf("\n");*/ int endtime = activity[0].end;
int ans = 1; for (int i = 1; i < n; i++)
{
if (endtime <= activity[i].start)
{
ans++;
endtime = activity[i].end;
}
} printf("%d", ans);
return 0;
}
 

贪心算法:7-6 Swan学院社团招新的更多相关文章

  1. 贪心算法(Greedy Algorithm)

    参考: 五大常用算法之三:贪心算法 算法系列:贪心算法 贪心算法详解 从零开始学贪心算法 一.基本概念: 所谓贪心算法是指,在对问题求解时,总是做出在当前看来是最好的选择.也就是说,不从整体最优上加以 ...

  2. 算法导论----贪心算法,删除k个数,使剩下的数字最小

    先贴问题: 1个n位正整数a,删去其中的k位,得到一个新的正整数b,设计一个贪心算法,对给定的a和k得到最小的b: 一.我的想法:先看例子:a=5476579228:去掉4位,则位数n=10,k=4, ...

  3. LEETCODE —— Best Time to Buy and Sell Stock II [贪心算法]

    Best Time to Buy and Sell Stock II Say you have an array for which the ith element is the price of a ...

  4. ACM_ICPC hdu-2111(简单贪心算法)

    一道非常简单的贪心算法,但是要注意输入的价值是单位体积的价值,并不是这个物品的总价值!#include <iostream> #include <stdio.h> #inclu ...

  5. 基于贪心算法的几类区间覆盖问题 nyoj 12喷水装置(二) nyoj 14会场安排问题

    1)区间完全覆盖问题 问题描述:给定一个长度为m的区间,再给出n条线段的起点和终点(注意这里是闭区间),求最少使用多少条线段可以将整个区间完全覆盖 样例: 区间长度8,可选的覆盖线段[2,6],[1, ...

  6. 增强学习贪心算法与Softmax算法

    (一) 这个算法是基于一个概率来对探索和利用进行折中:每次尝试时,以概率进行探索,即以均匀概率随机选取一个摇臂,以的概率进行利用,即以这个概率选择当前平均奖赏最高的摇臂(如有多个,则随机选取). 其中 ...

  7. 【九度OJ】题目1434贪心算法

    题目 本题的贪心算法策略需要深入思考一下 看到题目,最初没有理解题目的要求:看尽量多的完整的节目.尽量多是指数量多,自己理解成观看的时间最长.这样想其实简化了这道题. 正确理解题意后,首先想到的想法是 ...

  8. 题目1437:To Fill or Not to Fill:贪心算法解决加油站选择问题(未解决)

    //贪心算法解决加油站选择问题 //# include<iostream> # include<stdio.h> using namespace std; # include& ...

  9. 贪心算法(Greedy Algorithm)之最小生成树 克鲁斯卡尔算法(Kruskal&#39;s algorithm)

    克鲁斯卡尔算法(Kruskal's algorithm)是两个经典的最小生成树算法的较为简单理解的一个.这里面充分体现了贪心算法的精髓.大致的流程能够用一个图来表示.这里的图的选择借用了Wikiped ...

  10. 贪心算法(2)-Kruskal最小生成树

    什么是最小生成树? 生成树是相对图来说的,一个图的生成树是一个树并把图的所有顶点连接在一起.一个图可以有许多不同的生成树.一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n ...

随机推荐

  1. linux下创建虚拟环境

    安装虚拟环境: 1 sudo apt-get install virtualenvwrapper 配置环境变量: 1.创建目录用于存放虚拟环境. 1 mkdir $HOME/.virtualenvs ...

  2. cesium中限制地图浏览范围

    https://blog.csdn.net/qq_42740164/article/details/119375782?ops_request_misc=%257B%2522request%255Fi ...

  3. opencv-python 车牌检测和识别

    首先利用级联分类器把车牌位置找到取出来,然后用ocr进行车牌识别. 1 OCR之Tesseract安装 Tesseract安装可以参考这个链接: https://blog.csdn.net/m0_53 ...

  4. 【pandas小技巧】--日期相关处理

    日期处理相关内容之前pandas基础系列中有一篇专门介绍过,本篇补充两个常用的技巧. 1. 多列合并为日期 当收集来的数据中,年月日等信息分散在多个列时,往往需要先合并成日期类型,然后才能做分析处理. ...

  5. 使用canvas(2d)+js实现一个简单的傅里叶级数绘制方波图

    先看效果 查看页面右下角,嘿嘿 简要说明 创建具有不同半径与角速度的圆集合:(截图中展现的效果为5个,代码是30个,运行后效果会不同) const getCircles = (N = 10) => ...

  6. 三维模型OSGB格式轻量化顶点压缩主要技术方法分析

    三维模型OSGB格式轻量化顶点压缩主要技术方法分析 在三维模型应用中,轻量化处理是提高数据传输效率.减少渲染时间和优化用户体验的重要手段.而OSGB格式是一种常见的三维模型格式,在进行轻量化处理时,顶 ...

  7. Vue【原创】基于【日历组件Calendar】的【节假日管理】功能整合

    基于日历组件(lilo-calendar)的节假日管理功能整合. 效果图: 完整代码: 1 <template> 2 <div class="root-calendar&q ...

  8. 文心一言 VS 讯飞星火 VS chatgpt (86)-- 算法导论8.2 3题

    三.用go语言,假设我们在 COUNTING-SORT的第 10行循环的开始部分,将代码改写为: 10 for j = 1 to A.length 试证明该算法仍然是正确的.它还稳定吗? 文心一言: ...

  9. git + docker + docker-compose + Jenkins+Linux 自动化构建、部署、测试过程

    Jenkins三大概念: Job:即为任务 插件:maven构建项目.git拉取代码.ssh插件 工作空间:任务的存储空间,即为git代码的存储空间 开发者在本地开发,然后提交到 Source Res ...

  10. 文心一言 VS 讯飞星火 VS chatgpt (91)-- 算法导论8.3 4题

    四.用go语言,说明如何在 O(n) 时间内,对 0 到 $n^3-1$ 区间内的n个整数进行排序. 文心一言: 在 O(n) 时间内对 0 到 n^3-1 区间内的 n 个整数进行排序,可以使用基数 ...