题目大意:给出n头牛他们的初始位置和各自的速度,一头牛追上另一头牛之后这两头牛会变成一头牛,问最后剩下几头牛。
思路:简单模拟一下不难发现,我们只要算出如果正常行驶每头牛的最后到达的地点,从后往前扫一下,有多少个单调不减的序列就是最后有多少头牛。
CODE:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#inc...
分类:
其他好文 时间:
2015-02-27 21:42:25
阅读次数:
217
题目大意:给定一些牛,每头牛有一个初始位置和速度,如果某头牛能追上后面的那头速度就会和后面那头一样,求T分钟后会形成多少小团体
《论排序算法的低效性和如何避免使用排序算法以及认真读题的重要性》
一头牛的速度不会被后面的牛所影响
因此我们从后往前扫,如果当前的牛追不上后面那个小团体中最慢的那头牛,这头牛就成为新的小团体
时间复杂度O(n)
注意数据有点问题,虽然说初始位置和速度都小于等于1...
分类:
其他好文 时间:
2015-02-27 21:35:50
阅读次数:
288
200多b的朋友真是hentai.题解:排个序从后往前扫一遍看哪些撞死了。代码:#include
#include
#include
#include
#define N 101000
using namespace std;
long long n,m;
long long p[N],s[N];
int main(...
分类:
其他好文 时间:
2015-02-27 17:01:52
阅读次数:
116
给你一个数组A[1..n],请你在O(n)的时间里构造一个新的数组B[1..n],使得B[i]=A[1]*A[2]*...*A[n]/A[i]。你不能使用除法运算。
思路1:题目中说明,不能用除法,那一定是在相乘的时候,省略那一项,然后时间复杂度要0(n),就不能两层循环,而是要利用前面的相乘信息来降低复杂度。
算法:相似的分拆技术在数组题中。线性时间构造两个新数组,从开始遍历相乘 T1[0] =1,T1[i]=T[i-1]*A[i-1] ;而 T2从后往前遍历相乘 T2[len-1] =1,T2[i]...
分类:
编程语言 时间:
2015-02-26 23:06:04
阅读次数:
408
二分+树状数组水过了,从后往前确定数字即可。#include #include #include #include #include #include #include #include #include #define lowbit(x) ((x)&(-(x)))using namespace s...
分类:
其他好文 时间:
2015-02-25 23:31:18
阅读次数:
195
给定一个弦图,问最少染色数。对于弦图的一个完美消去序列,从后往前染色,每次染可以染的最小编号的颜色,由完美消去序列的定义,序列任一后缀的点的导出子图中,由该后缀第一个元素及其邻接点导出的子图一定是完全图,所以,序列中某一元素染的颜色编号是该完全图的大小。所以最小染色数小于等于最大团的点数,而显然前者...
分类:
其他好文 时间:
2015-02-17 22:17:19
阅读次数:
245
字符串动态规划 匹配时两指针的重要思想 针对原串从后往前 不需要string类
分类:
其他好文 时间:
2015-02-15 19:23:05
阅读次数:
154
拓扑排序:对有向图的所有结点排序,使得每一条有向边(u,v)对应的u都排在v的前面。
如果图中存在有向环,则不存在拓扑排序,反之则存在。把不包含有向环的有向图称为有向无环图(Directed Acyclic Graph,DAG)。
//因为查找的是有向边(u,v),所以在放置u之前需要把比u偏序大的所有的v放置好。
//所以,所有元素的放置是从后往前放的。
//用到的vis数组,vis[u]=...
分类:
编程语言 时间:
2015-02-04 20:26:34
阅读次数:
255
题目大意:给定k次弹出宝物的机会,每次随机弹出n种宝物的机会,如果吃过这种宝物的所有前提宝物就可以吃这种宝物,求最优策略的期望得分
看到数据范围果断状压DP- - 不看数据范围害死人- -
至于吃还是不吃 这是个问题
对于这种最优策略的期望DP 我们一般都是从后往前推
枚举每次出现宝物 枚举此时的状态 枚举宝物是哪种
如果当前的宝物可以吃 就在吃与不吃的后继状态中选择最大值加到当前状态上...
分类:
其他好文 时间:
2015-02-03 21:26:38
阅读次数:
160
题意 把m数分成k组 使每组数的和的最大值最小 如果有多种分法 靠前的组的和尽量小
关键是找出那个最小的最大值 可以通过二分来找出 开始左端点为m个数中最大的数 右端点为m个数的和 若中点能将m个数分为小于等于k组 比它大的肯定都是可以的 中点变为右端点 否则中点变成左端点
然后就可以贪心逆向模拟了 从后往前每组选择尽量多的数直到剩下的数等于组数
#include...
分类:
其他好文 时间:
2015-02-03 19:26:44
阅读次数:
180