十三 十四周总结

 1 //十三周总结
 2 //在看挑战程序设计的第二章和第三章的第一节
 3 //二分
 4 //1.从一个 有序的数组里面查找某一个值
 5 int pos=lower_bound(a,a+n,key)-a;//返回的pos是大于等于键值的第一个位置
 6 int pos=upper_bound(a,a+n,key)-a;//返回的pos是严格大于键值的第一 个位置
 7 //2.判断一个解是否可行
 8 //1)一般应该是先确定上界,下界,一个判断解是否可行的ok函数来找
 9 //2) 看书上写的,输出小数的问题,可以指定循环次数,循环100次可以达到10^-30的精度范围
10 //3)最大化最小值
11 //4)最大化平均值
12 //这两种感觉框架都和判断一个解是否可行一样,关键还是写一个判断是否可行的ok函数来找
13 
14 //前天晚上的cf的c就是二分最小的时间,可是判断可行不懂判断
15 //再上一次的cf也有一道二分,二分最小值,判断是否可行
16 
17 //然后还看了一点后面的尺取法,弹性碰撞,折半枚举
18 //然后就是省赛,有点坑,但自己太弱才是最根本的原因吧--- 
19 //D题写了,wa了,后来看题解,才知道,应该离线处理,
20 //即先看哪些基站会被建设,把它们都建好
21 //然后倒着处理查询
22 Q 3  输出 2
23 Q 2  输出 2(因为在这里建立了一个基站,答案就是它本身)
24 C 2  删除2基站
25 Q 3 输出 1 
View Code

 

//十四周总结
//这一周前两天在考试,后几天在做挑战程序设计的第二章的题目

深度优先搜索
//POJ 1979: 给出红瓦黑瓦,人只能走红瓦,问最多能走多少片瓦,dfs
//AOJ 0118:和例题判断有多少个水坑一样,只是这题有三种不同的坑
//AOJ 0033:二进制枚举
//POJ 3009:扔石头,相邻有石头的不能扔,一旦扔出去,就只能向那一个方向移动了(用一个while),碰到 石头就打碎它,求出最小步数

广度优先搜索
//AOJ 0558;做n次bfs,把每次的步数加起来
//AOJ 0121;有一个4*2的方框,里面随机放着0--7的数,然后每次可以交换相邻的两个数的位置,最终希望排列为01234567,求最小步数
//看题解看了好久----好捉急啊-------------
//选0为参考的,然后通过0的漫游来找到所有的解,放在map里面,最后再map里面再找
//http://www.hankcs.com/program/aoj-0121-seven-puzzle-challenge-programming-contest-2nd-edition-exercises-answers.html 

穷竭搜索
//POJ 2718 贪心,枚举排列,分奇偶
//POJ 3187 枚举排列
// POJ 3050 dfs 给定一个5*5的矩阵,每个格子上有一个数字,问走5步能够形成不同的6位数有多少个,dfs,把每次得到的六位数放到set里面
//最后输出set的size就可以了

基础的动态规划算法
// POJ 3176  数塔
// POJ 2229 分奇偶 递推
//POJ 2385 分当前位置和下落的苹果的位置是否一致来做 
// POJ 3616 看的这一篇题解,,http://www.zzkun.com/archives/227
//POJ 3280 给出一个字符串,给出每个字母增加或者删除的代价,问为了使它 变成回文串的最小代价
//还是看题解,这篇,http://blog.sina.com.cn/s/blog_6635898a0100qd3g.html

优化递推式
//POJ 1742 从三维优化到二维,再优化到一维,看题解都看晕了--------------------
//POJ 3046 有A种蚂蚁,来自T 个家族, 来自同一个家族的是同一种蚂蚁,问从里面取n只,可以构成多少种 不同的集合
//这篇--http://www.hankcs.com/program/cpp/poj-3046-ant-counting-problem-solution-challenge-programming-contest-2nd-edition.html
//POJ 3181 完全背包方案数,,本来以为终于有一道会的题目,,,没想到要用高精度--------

需稍加思考的题目
//POJ 1065 某序列的最少上升子序列数就是该序列的最长下降子序列的长度
//POJ 1631 LIS
//另外3道还不会----

优先队列
//POJ 3614 贪心+优先队列,后来 搜题解发现有最大流做的
//POJ 2010;还不懂那个维护前一半的最小花费的过程,,,还可以二分第k大的值来做

并查集
//POJ 2236 并和查
//POJ 1703 和食物链一样
//AOJ 2170 不用路径压缩,每次标记一个节点的时候,就把它的父节点改成自己

最短路
//AOJ 0189 floyd
//POJ 2139 floyd
//POJ 3259 Bellman_Ford判断负环
//POJ 3268 正向反向建图,两次dijkstra
//AOJ 2249 先用dijkstra求最短路径,再在这个基础上考虑最小的花费
//AOJ 2200 floyd+dp
 

 
//看了好多好多题解的说啊------------接下来的每一周都有考试了,然后接着做书上的题目,再好好复习,
//加油-------------------------------------------------
View Code

 

posted @ 2015-06-14 09:49  长安大学ACM集训队  阅读(231)  评论(0编辑  收藏  举报