哎呀好几天没写POI题解了 (>﹏<)

看着摇曳不定的小旗子深深惶恐

打算开始肝洛谷试炼场的提高分区了【对我就是这么菜…

  • 搜索Ex

比暴搜不错得多的题

洛谷P1514 引水入城

拆成两问来看 第一问只要从湖边的城市(简称湖城)开始搜索就可以了

第二问的faulse项

用dfs剩的vis统计一下沙漠边缘有哪些点(简称沙城)没被搜到的

true项 蒟蒻一开始想状压

当然 n <= 500 【黑线

后来画了个等高线地形图【划掉

发现如果每个沙城都能有水喝【即true项

每个湖城管辖的沙城都是连续的区间

现在问题就变成了 至少用多少个区间覆盖整个区间

当然这问题长得很DP 但有个贪心更优

借用一位神犇的例子

m为10
N = 7:[1,5]、[1,6]、[3,6]、[1,7]、[6,9]、[9,10]、[7,9]。

先把每个区间(都是闭区间)排序 左区间小的优先

[1,5]、[1,6]、[1,7]、[3,6]、[6,9]、[7,9]、[9,10]

我们从1开始

选择每个区间的代价都是1 选择右区间大的显然更优

所以取[1, 7]

现在左区间小区等于7的区间 在小于等于7的部分已经被覆盖 所以无效了

为使区间连续 我们找(左区间小于等于8的区间)中(右区间最大的区间)

okk

最后附一句 如果找到一个地方 (可用最大右区间)小于(上一个取的区间的左区间)

 inline void dfs(int x, int y){
node[x][y].vis = ;
if(x < || x > n || y < || y > m) return ;
for(int i = ; i <= ; i++){
int sx = x + move[i][], sy = y + move[i][];
if(node[sx][sy].w < node[x][y].w){
if(!node[sx][sy].vis){
dfs(sx, sy);
}
node[x][y].l = min(node[sx][sy].l, node[x][y].l);
node[x][y].r = max(node[sx][sy].r, node[x][y].r);
}
}
}

dfs部分

     for(int i = ; i <= m; i++)
a[i] = (A){node[][i].l, node[][i].r};
sort(a + , a + m + , cmp);
int i = , j = , ans = ;
while(j <= m){
int k = j;
while(a[i].l <= k){
j = max(j, a[i].r);
i++;
}
j++;
ans++;
}
printf("1\n%d", ans);

贪心部分

洛谷P1242 新汉诺塔

吐槽玄学数据…

明明能一次A的wwww【委屈

 void dfs(int cur, int from, int to, bool flag){
//cur表示当前要移动的圆盘大小 from表示它在的位置 to表示它要移动到的地方
//flag = 1 表示cur是在进行主操作的点 flag = 0表示cur是为了移动另一个圆盘而移动的
if(from == to){
if(cur > ) dfs(cur - , s[cur - ], flag ? t[cur - ] : to, flag);
/*
当要移动的盘已经在它的目标位置上
如果flag = 1 那么它的主操作已经被完成 需要将主操作传递到下一个级别的圆盘上
flag = 0 那么要把下一个级别的圆盘从它的位置上移动到无关的杆子上
*/
return ;
}
if(cur > ) dfs(cur - , s[cur - ], - from - to, );
//把比它小的所有盘都移到无关的杆子上
printf("move %d from %c to %c\n", cur, turn(from), turn(to));
s[cur] = to; ans++;
//移动后 当前盘已经在目标位置上 与from == to的操作一致
if(cur > ) dfs(cur - , s[cur - ], flag ? t[cur - ] : to, flag);
}
/*
汉诺塔的框架:
将主操作从大盘向小盘传递
移动一个盘的最优策略是把它上面的盘都移到无关杆上
注意的点:
flag的传递
起点终点的选择
输出格式
结束条件(cur == 1)
*/

P1120 小木棍 [数据加强版]

啊啊啊QAQ 都是泪

有个剪枝不错

            if ( sum ==  || sum + i == target )  //
break;

搜索Ex的更多相关文章

  1. SQLSERVER走起微信公众帐号已经开通搜狗微信搜索

    SQLSERVER走起微信公众帐号已经开通搜狗微信搜索 请打开下面链接 http://weixin.sogou.com/gzh?openid=oIWsFt-hiIb_oYqQHaBMoNwRB2wM ...

  2. solr_架构案例【京东站内搜索】(附程序源代码)

    注意事项:首先要保证部署solr服务的Tomcat容器和检索solr服务中数据的Tomcat容器,它们的端口号不能发生冲突,否则web程序是不可能运行起来的. 一:solr服务的端口号.我这里的sol ...

  3. SQLServer地址搜索性能优化例子

    这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...

  4. HTML5轻松实现搜索框提示文字点击消失---及placeholder颜色的设置

    在做搜索框的时候无意间发现html5的input里有个placeholder属性能轻松实现提示文字点击消失功能,之前还傻傻的在用js来实现类似功能... 示例 <form action=&quo ...

  5. bzoj1079--记忆化搜索

    题目大意:有n个木块排成一行,从左到右依次编号为1~n.你有k种颜色的油漆,其中第i种颜色的油漆足够涂ci个木块.所有油漆刚好足够涂满所有木块,即c1+c2+...+ck=n.相邻两个木块涂相同色显得 ...

  6. bzoj3208--记忆化搜索

    题目大意: 花花山峰峦起伏,峰顶常年被雪,Memphis打算帮花花山风景区的人员开发一个滑雪项目.    我们可以把风景区看作一个n*n的地图,每个点有它的初始高度,滑雪只能从高处往低处滑[严格大于] ...

  7. Android中通过ActionBar为标题栏添加搜索以及分享视窗

    在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,他用于取代3.0之前的标题栏,并提供更为丰富的导航效果.Action ...

  8. 一步步开发自己的博客 .NET版(5、Lucenne.Net 和 必应站内搜索)

    前言 这次开发的博客主要功能或特点:    第一:可以兼容各终端,特别是手机端.    第二:到时会用到大量html5,炫啊.    第三:导入博客园的精华文章,并做分类.(不要封我)    第四:做 ...

  9. Go语言实战 - 我需要站内搜索

    山坡网的用户抱怨"为什么搜索'二鬼子李富贵'找不到'二鬼子汉奸李富贵'?我用百度搜都能找到." 当时我就滴汗了,用户说的有道理,应该要能搜索到. 之前的方案很简单,用户输入的字串会 ...

  10. Entity Framework 6 Recipes 2nd Edition(13-4)译 -> 有效地创建一个搜索查询

    问题 你想用LINQ写一个搜索查询,能被转换成更有效率的SQL.另外,你想用EF的CodeFirst方式实现. 解决方案 假设你有如下Figure 13-6所示的模型 Figure 13-6. A s ...

随机推荐

  1. 方差(variance)、标准差(Standard Deviation)、均方差、均方根值(RMS)、均方误差(MSE)、均方根误差(RMSE)

    方差(variance).标准差(Standard Deviation).均方差.均方根值(RMS).均方误差(MSE).均方根误差(RMSE) 2017年10月08日 11:18:54 cqfdcw ...

  2. CF258D Little Elephant and Broken Sorting/AGC030D Inversion Sum 期望、DP

    传送门--Codeforces 传送门--Atcoder 考虑逆序对的产生条件,是存在两个数\(i,j\)满足\(i < j,a_i > a_j\) 故设\(dp_{i,j}\)表示\(a ...

  3. 数列分块入门九题(三):LOJ6283~6285

    Preface 最后一题我一直觉得用莫队是最好的. 数列分块入门 7--区间乘法,区间加法,单点询问 还是很简单的吧,比起数列分块入门 7就多了个区间乘. 类似于线段树,由于乘法的优先级高于加法,因此 ...

  4. CSS 列表实例

    CSS 列表属性允许你放置.改变列表项标志,或者将图像作为列表项标志.CSS 列表属性(list)属性 描述list-style 简写属性.用于把所有用于列表的属性设置于一个声明中.list-styl ...

  5. OpenDaylight(Oxygen)安装feature出现错误的解决方案

    在使用OpenDaylight控制器时,初次进入karaf命令行下都需要先进行feature的安装 在使用Nitrogen版本(0.7.x)时,组件的安装可以类似 feature:install od ...

  6. 【URLOS开发入门】docker官方系统镜像——Alpine入门教程

    我们在进行URLOS应用开发时,经常会用到一些基础系统镜像,如:ubuntu.CentOS.Debian等,我们可以通过docker pull命令直接拉取官方镜像. root@ubuntu:~# do ...

  7. Redis学习笔记之多机数据库

    1.复制 完整重同步,从服务器完全复制主服务器的数据,主要通过RDB文件和单条命令传输(套接字连接). 部分重同步,主服务器进行命令传播的时候,不仅会把写命令发送给从服务器,而且还会把写命令放入复制积 ...

  8. 《linux内核设计与分析》内核模块编程

    内核模块编程 一.准备工作 虚拟机:VMware Workstation 12操作系统:ubuntu当前内核版本:linux-headers-4.4.0-22-generic 二.有关于内核模块的知识 ...

  9. shell脚本--循环结构

    shell的循环结构有while和for两种 for循环 #!/bin/bash #文件名:test.sh i=4 for i in 2 4 6 8 10 do echo $i done echo $ ...

  10. Event事件2

    1,阻止默认行为: 2,事件监听 3,事件流之事件捕获 4,事件委托 阻止默认行为 浏览器中有很多默认行为,比如当点击a标签后,会发生链接的跳转.当点击鼠标的右键时, 会显示右键菜单等. 有些时候,浏 ...