贪心

1.

poj2287

N匹马的田忌赛马问题

稳稳地赢。

寻找最优的方案。

更优的收益。

有时候,局部最优导致全局最优。

马的能力值。

使得让我赢的局数最多。

对于对方的任何一匹马,如果我的马能打败它,那么我就要用能打败它的马里面能力值最小的马去迎战,如果我的马不能打败它,那么我就用剩下的所有马中能力

最小的马去迎战。这个思路是很贪心的。

贪心不是一板一眼的算法,更是一种思路。

  

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
int a[1010],b[1010]; //田忌和齐王的马速序列
int main()
{
//#ifdef CDZSC_June
//freopen("in.txt","r",stdin);
//#endif
//std::ios::sync_with_stdio(false);
int n;
while(scanf("%d",&n),n) //输入田忌和齐王马的匹数
{
for(int i=1;i<=n;i++) scanf("%d",&a[i]); //输入田忌 n 匹马的速度
for(int i=1;i<=n;i++) scanf("%d",&b[i]); //输入齐王 n 匹马的速度
sort(a+1,a+1+n); //按照马速递增顺序排列田忌的 n 匹马
sort(b+1,b+1+n); //按照马速递增顺序排列齐王的 n 匹马

int tl=1,tr=n,ql=1,qr=n; //A 序列的首尾指针和 B 序列的首尾指针初始化
int sum=0; //田忌赢得的银币数初始化
while(tl<=tr) //若比赛未进行完
{
if(a[tl]<b[ql]) //若田忌最慢的马慢于齐王最慢的马,则田忌最慢的马与齐王最快的马比,输一场
{
qr--;
tl++;
sum-=200;
}

else if(a[tl]==b[ql]) //若田忌最慢的马与齐王最慢的马速度相同
{
while(tl<=tr && ql<=qr) //循环,直至田忌或齐王的马序列空为止
{
if(a[tr]>b[qr]) //若田忌最快的马快于齐王最快马,则田忌最快的马与齐王最快的马比,赢一场
{
sum+=200;
tr--;
qr--;
}
else //否则若田忌最慢的马慢于齐王最快马,则田忌最慢的马与齐王最快的马比,输一场,退出 while
{
if(a[tl]<b[qr]) sum-=200;
tl++;qr--;break;
}
}
}

else //若田忌最慢的马快于齐王最慢的马,则田忌最慢的马与齐王最慢的马比,赢一场
{
tl++;
ql++;
sum+=200;
}
}
printf("%d\n",sum);
}
return 0;
}

2.

括号序列配对问题。

把一个问题的本质看透。

缺x个左括号的只能和缺x个右括号的去配对连接。只有这样它才一定生成合法的括号序列。

3.

RGB序列问题。

Red,Green,Blue.

可以从动态规划的方法来解决问题哦!

我们用贪心算法不是盲目贪心的哦!我们的贪心是能得到最优解的。有时候盲目去贪的话,还真让你贪对了。

贪心算法的理论证明是非常晦涩难懂的!

怎么贪也是一种学问哦!

博弈(game):

游戏就是对战!

在五子棋中,执黑先行,先手必胜。

1.

石子博弈。

谁先没得取谁就输了。

先手,后手。

枚举-----》》推出结论

我们可以先模拟一下哦。

先手必败的情形:n是3的倍数!

必胜态&&必败态。

必胜态的话是存在一个操作将必胜态转移到必败态的;必败态则是任何操作都只能从必败态转移到必胜态!

2.

取数博弈。

一直都是假设两个人都能做出最明智的决策。

先考虑必败态:只要所有

后手通过模仿先手的决策败先手之!

再考虑必胜态!

实现从必胜态到必败态的一种转移。

当然,博弈有很多有趣的问题!

谢谢a兵长老师的讲解!

B站学习记:贪心与博弈的更多相关文章

  1. 我在 B 站学习深度学习(生动形象,跃然纸上)

    我在 B 站学习深度学习(生动形象,跃然纸上) 视频地址:https://www.bilibili.com/video/av16577449/ tensorflow123 http://tensorf ...

  2. python脚本处理下载的b站学习视频

    作为常年在b站学习的我,一直以来看到有兴趣的视频,从来都是点赞收藏下载三连,但是苦于我那小钢炮iphone se屏幕大小有限,看起视频实在费劲,决定一定要找个下载电脑上下载b站视频的方法,以前用过硕鼠 ...

  3. 洛谷 P3387 【模板】缩点 DAGdp学习记

    我们以洛谷P3387 [模板]缩点 来学习DAGdp 1.这道题的流程 //伪代码 for i->n if(i未被遍历) tarjan(i) 缩点() DAGdp() 完成 首先tarjan这部 ...

  4. MMM 数位dp学习记

    数位dp学习记 by scmmm 开始日期 2019/7/17 前言 状压dp感觉很好理解(本质接近于爆搜但是又有广搜的感觉),综合了dp的高效性(至少比dfs,bfs优),又能解决普通dp难搞定的问 ...

  5. MMM 状压dp学习记

    状压dp学习记 by scmmm 开始日期 2019/7/17 前言 状压dp感觉很好理解(本质接近于爆搜但是又有广搜的感觉),综合了dp的高效性(至少比dfs,bfs优),又能解决普通dp难搞定的问 ...

  6. BZOJ 1034 泡泡堂BNB 贪心+简单博弈

    同样是今天做bzoj时做到的,感觉能力范围之内的就做了,也是蛮简单的 1034: [ZJOI2008]泡泡堂BNB Time Limit: 10 Sec Memory Limit: 162 MB Su ...

  7. ftk学习记(icon篇)

    [声明:版权全部,欢迎转载.请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 在開始今天的文章之前.我们还是先看一下上一节的效果图. 大家能够參照上一节的解说,是不是存在这种 ...

  8. ftk学习记(消息框篇)

    [ 声明:版权全部,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 上一篇说到了输入框.闲话不多说,首先看结果显示, 大家看看效果是不是和我们之前说的一样.今天, ...

  9. 菜鸟VUER学习记——零0章、打开新的大门

    是什么 基于MVVM模型,核心库只关注视图层,通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件的js框架.根据项目的复杂度和需求,渐进的加入插件以达到恰到好处的程度. 解决问题 UI组件化 ...

随机推荐

  1. C#24种设计模式汇总

    创建型:6 01. 简单工厂模式 08. 工厂方法模式 09. 原型模式 13. 建造者模式 15. 抽象工厂模式 21. 单例模式 结构型:7 06. 装饰模式 07. 代理模式 12. 外观模式 ...

  2. 【第三篇】C#调用lua文件

    获取一个全局基本数据类型 使用LuaEnv.Global.Get<T>("name")就可以 var str = luaEnv.Global.Get<string ...

  3. Qt编写的项目作品1-自定义控件大全

    一.功能特点 超过160个精美控件,涵盖了各种仪表盘.进度条.进度球.指南针.曲线图.标尺.温度计.导航条.导航栏,flatui.高亮按钮.滑动选择器.农历等.远超qwt集成的控件数量. 每个类都可以 ...

  4. Oracle命令行导入dmp文件

    一.导入准备 使用impdp命令,需要在oracle数据库服务器操作: 使用sqlplus或者Oracle客户端(PL/SQL) 链接到相应的Oracle数据库实例,进行如下操作 1. 创建逻辑目录, ...

  5. 网站SEO中服务器优化的三个问题

    网站做好之后,站长第一件事就是想到去做SEO,但是有一些网站在做优化的时候,出现一些奇怪的情况,比如说优化已经不错的网站,排名突然就掉下来了:还有一些网站各项优化工作都是非常认真,但是排名却一直不上来 ...

  6. opencv —— split、merge 通道的分离与合并

    对于三通道或四通道图像,有时要对某一通道的像素值进行修改或展示,这就需要进行通道分离操作.修改后,若要进行结果展示,就需要重新将各通道合并. 通道分离:split 函数 void split (Inp ...

  7. Zabbbix之十二------Zabbix实现微信报警通知及创建聚合图形

    实战一:实现zabbix监控微信报警 1.在企业微信上注册账号 1.注册企业微信,管理员需要写上自己的真实姓名,扫描以下的二维码,与微信关联真实姓名. 2.登陆企业微信,然后创建一个微信故障通知应用 ...

  8. SpringBoot从1.5.1→2.2.4项目加包扫雷二:打不到符号java: org.springframework.boot.autoconfigure.web.相关配置错误支持包

    import org.springframework.boot.autoconfigure.web.DefaultErrorAttributes→org.springframework.boot.we ...

  9. 【巨杉数据库SequoiaDB】巨杉Tech | “删库跑路”又出现,如何防范数据安全风险?

    最近,又双叕有企业被“删库”了.来自微盟官网的消息,微盟的业务系统数据库(包括主备)遭遇其公司运维人员的删除,系统将停止运营超48小时. 频发的类似事件也让大家对于数据安全的关注不断提高.数据是一个科 ...

  10. Wilson's Theorem

    ProofsSuppose first that $p$ is composite. Then $p$ has a factor $d > 1$ that is less than or equ ...