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
//十四周总结 //这一周前两天在考试,后几天在做挑战程序设计的第二章的题目 深度优先搜索 //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 //看了好多好多题解的说啊------------接下来的每一周都有考试了,然后接着做书上的题目,再好好复习, //加油-------------------------------------------------