IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 算法--实验三 -> 正文阅读

[数据结构与算法]算法--实验三

  • 一.会场安排问题

#include<stdio.h>

/*

查找每个活动的结束时间,每一次选择时查找具有最早结束时间的相容的活动,先把n个活动按时间的结束时间非减序排列,这样,贪心选择是取当前活动集合中结束时间最早的活动就归结为取当前活动集合中排在最前面的活动*/

void sort(int s[],int f[],int n)//把各个活动的起始时间和结束时间按结束时间递增排序

{

??? int a,b;

??? int i,j;

??? for(i=0;i<n;i++)

??? {

??????? for(j=i+1;j<n;j++)

??????? {

??????????? if(f[i]>f[j])

??????????? {a=f[i];f[i]=f[j];f[j]=a;

??????????? b=s[i];s[i]=s[j];s[j]=b;}

??????? }

??? }

}

int activemanage(int s[],int f[],bool a[],int n)

{

??? a[0]=1;

??? int i;

??? int j=1,count=1;

??? for(i=1;i<n;i++)

??? {

??????? if(s[i]>=f[j])

??????? {

??????????? a[i]=1;

??????????? j=i;

??????????? count++;

??????? }

??????? else a[i]=0;

??? }

??? return count;

}

int main()

{

??? int i,n;

??? int p;

??? int s[100],f[100];

??? bool a[100];

??? printf("输入节目数:\n");

??? scanf("%d",&n);

??? printf("请依次输入节目的开始和结束时间\n");

??? for(i=0;i<n;i++)

??? {

??????? scanf("%d %d",&s[i],&f[i]);

??? }

??? sort(s,f,n);

??? p=activemanage(s,f,a,n);

??? printf("安排的节目个数为:%d\n",p);

??? printf("节目的选取情况为(0表示不选 1表示选取):\n");

??? for(i=0;i<n;i++)

??????? printf("%d ",a[i]);

??? printf("\n");

??? return 0;

}

二、最优装载问题

#include <iostream>

#include <algorithm>

#include <bitset>

//最轻者先装一定是整体最优解,满足贪心选择

using namespace std;

struct node

{

??? int id;

??? int val;

};

node box[2005];

int n,c;

bool operator <(const node &a,const node &b)

{

??? return a.val<b.val;

}

void greedySelect()

{

??? sort(box,box+n);

??? bitset<2005> b;

??? b.reset();

??? for(int i=0;i<n;i++)

???? if(box[i].val <= c)

???? {

????????? b[box[i].id]=1;

????????? c-=box[i].val;

???? }

???? else break;

???? cout<<b.count()<<endl;

}

int main()

{

??? while(cin>>n>>c)

??? {

??????? for(int i=0;i<n;i++)

??????? {

??????????? box[i].id=i;

??????????? cin>>box[i].val;

??????? }

??????? greedySelect();

??? }

??? return 0;

}

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-06-01 15:26:10  更:2022-06-01 15:27:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 13:50:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码