贪心算法的基本步骤:

1、从问题的某个初始解出发。
2、采用循环语句,当可以向求解目标前进一步时,就根据局部最优策略,得到一个部分解,缩小问题的范围或规模。
3、将所有部分解综合起来,得到问题的最终解。

HDU2037:

链接:http://acm.hdu.edu.cn/showproblem.php?pid=2037

题解:

贪心算法:在对问题求解时,总是作出在当前看来是最好的选择。也就是说,不从整体上加以考虑,它所作出的仅仅是在某种意义上的局部最优解(是否是全局最优,需要证明)。若要用贪心算法求解某问题的整体最优解,必须首先证明贪心思想在该问题的应用结果就是最优解!!

本题是贪心法的一个最简单的例子,将结束时间按从小到大排好序,然后寻找下一个开始时间大于等于上一个结束时间的,如此往复,即可解决问题

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<string>
#include<algorithm>
#include<vector>
#include<cmath>
using namespace std;
const int maxn=+;
typedef struct
{
int ts;
int te;
}t;
t p[maxn];
const int cmp(const t s1,const t s2)
{
return s1.te<s2.te;
}
int main()
{
int n;
while(cin>>n)
{
if(n==)
break;
for(int i=;i<n;i++)
cin>>p[i].ts>>p[i].te;
sort(p,p+n,cmp);
int cnt=;
for(int i=;i<n;i++)
{
for(int j=i+;j<n;j++)
if(p[i].te<=p[j].ts)
{
i=j;
cnt++;
continue;
}
}
cout<<cnt<<endl;
}
return ;
}

HDU1050

区间覆盖问题:

链接:http://acm.hdu.edu.cn/showproblem.php?pid=1050

题解:先创建一个函数judge(),输入的是任意房间号,输出的是走廊的位置。比如1号房间和2号房间都对应位置1的走廊,3号房间和4号房间对应位置2的走廊,一共有200个这样的位置。我用a[201]定义这些位置,其中某位置的值就是经历这个位置的次数。如果从某一号房到另一号房,所经历的每个位置的次数都+1,最后再全体扫描下哪个位置经历次数最多,输出值便是这个位置的值*10

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<string>
#include<vector>
using namespace std;
const int maxn=+;
int s[maxn];
int judge(int n)
{
if(n%==) return n/;
else return (n+)/;
}
int main()
{
int t;
cin>>t;
while(t--)
{
int n,a,b;
cin>>n;
memset(s,,sizeof(s));
for(int i=;i<n;i++)
{
cin>>a>>b;
if(a>b)
swap(a,b);
for(int j=judge(a);j<=judge(b);j++)
s[j]++;
}
int mx=;
for(int i=;i<;i++)
if(mx<s[i])
mx=s[i];
cout<<mx*<<endl;
}
return ;
}

贪心法基础题目 HDU的更多相关文章

  1. 贪心算法HURUST题目

    题目描述: Yogurt factory The cows have purchased a yogurt factory that makes world-famous Yucky Yogurt. ...

  2. 杭电OJ1789、南阳OJ236(贪心法)解题报告

    杭电OJ1789http://acm.hdu.edu.cn/showproblem.php?pid=1789 南阳OJ236http://59.69.128.203/JudgeOnline/probl ...

  3. java基础题目总结

    有些基础题目由于工作中用的比较少但却又是不可少的,这样回答起来就会反应慢,不确定,不准确,特此开了文章记录遇到的不确定或者回答比较拗口的问题. 1.servlet是单例的吗,是安全的吗,是多线程吗 s ...

  4. iOS 面试基础题目

    转载: iOS 面试基础题目 题目来自博客:面试百度的记录,有些问题我能回答一下,不能回答的或有更好的回答我放个相关链接供参考. 1面 Objective C runtime library:Obje ...

  5. Python运维开发基础06-语法基础【转】

    上节作业回顾 (讲解+温习120分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 添加商家入口和用户入口并实现物 ...

  6. Python运维开发基础05-语法基础【转】

    上节作业回顾(讲解+温习90分钟) #!/usr/bin/env python # -*- coding:utf-8 -*- # author:Mr.chen import os,time Tag = ...

  7. Python运维开发基础04-语法基础【转】

    上节作业回顾(讲解+温习90分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 仅用列表+循环实现“简单的购物车程 ...

  8. Python运维开发基础03-语法基础 【转】

    上节作业回顾(讲解+温习60分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen #只用变量和字符串+循环实现“用户登陆 ...

  9. Python运维开发基础02-语法基础【转】

    上节作业回顾(讲解+温习60分钟) #!/bin/bash #user login User="yunjisuan" Passwd="666666" User2 ...

随机推荐

  1. IE 和 FF 写不同的CSS

    .FireFox 下如何使连续长字段自动换行 众所周知IE中直接使用word-wrap:break-word 就可以了, FF中我们使用JS插入的技巧来解决 <style type=" ...

  2. 为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序

    在Android硬件抽象层(HAL)概要介绍和学习计划一文中,我们简要介绍了在Android系统为为硬件编写驱动程序的方法.简单来说,硬件驱动程序一方面分布在Linux内核中,另一方面分布在用户空间的 ...

  3. Loadrunner之脚本的调试和保存(六)

    一.调试脚本 脚本录制完毕后,按F5键或单击菜单上的RUN按钮,可以运行脚本.       在VIRTUAL USER GENERATOR中运行脚本的作用,主要是查看录制的脚本能否正常通过,如果有问题 ...

  4. GameUnity 2.0 发布倒计时

    万众期待的 gameunity 网络游戏框架 已经完成了,现在在最后的检验调试阶段. 因为版本 改动非常之大,所以 版本号 从0.2版本 改成 2.0版本. gameunity事件部分,一如既往保持高 ...

  5. java 读取URL中的资源

    Example13_1.java import java.net.*; import java.io.*; import java.util.*; public class Example13_1 { ...

  6. Android接收wifi路由器发送过来的一组字节数据

    1.字节数组转换为字符串 byte[] byBuffer = new byte[20];... ...String strRead = new String(byBuffer);strRead = S ...

  7. Oracle Sql优化之分层查询(connect by)

    1.对于表中行与行存在父子关系时,可以通过connect by查询方式,查询行与行之间的父子关系 ),'-')|| empno as tempno, ename,mgr,level, decode(, ...

  8. 如何获取url访问历史记录

    在院里的群里,有人问了这么一个问题: A页面提交表单到B页面,然后在B页面点了后退,如果在A页面上判断是直接访问的还是后退进去的呢?我不想改B页面. 于是乎本着热心人的想法,我就帮他搞了搞,首先我想到 ...

  9. 虚拟ip

    网卡上增加一个IP: ifconfig eth0:1 192.168.0.1 netmask 255.255.255.0 删除网卡的第二个IP地址: ip addr del 192.168.0.1 d ...

  10. 鉴客 C# 抓取页面(带认证)

    1. [代码][C#]代码     01 HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(""); 02 re ...