02 2017 档案
摘要:最近在上软件工程实践课程,想做一个类似于QQ空间或者朋友圈一样的效果。即显示所有好友发送的动态以及动态下回复的信息。 自己YY了一种方法,一开始以为不能达到效果,研究了2个小时终于实现了,感觉效果还是很棒棒的,拿来分享一下。神犇请绕道吧~~ listview可以自己排版布局,我们用listview来
阅读全文
摘要:二分,贪心。 二分答案,然后贪心验证即可。
阅读全文
摘要:排序,贪心。 从小到大排个序算一下就可以了。目测无论从哪个时间点开始算罚时,这样的贪心策略都是正确的。
阅读全文
摘要:树的重心,树形dp,背包。 树的重心有两个充分必要条件: 1.某树有两个重心a,b <=> a与b相邻,断开a与b之间的边之后,两个联通分量内的点的个数相同。 2.某树有一个重心a <=> 以a为根的树,去掉a之后,剩下的联通分量,除去节点个数最多
阅读全文
摘要:dp。 这题的本质和求一个有向无环图的最长路径长度的路径是一样的。 dp[i][j]表示到第i天,湿度为a[i],是第j种天气的最大概率。记录一下最大概率是i−1天哪一种天气推过来的,然后就可以得到路径了。
阅读全文
摘要:排序,贪心,栈,树状数组,二分。 因为要在个数最多的情况下保证收益最多,所以任务和机器都按照y从小到大排序,然后看每一个机器去处理哪一个任务。肯定是在任务的y小于等于机器的y的任务中寻找一个x最大的,这样能保证个数最多的情况下保证收益最多。
阅读全文
摘要:并查集。 将每一个物品拆成两个,两个意义相反,然后并查集即可。
阅读全文
摘要:树形dp。 先看权值之和是否为3的倍数,如果不是则一定无解。 如果是3的倍数,可以分两次去切。每次一个节点,要求这个节点不是根,并且的子树权值和为sum/3,又要是某链上深度最深的。 找不到两个依然是无解,否则就有解。
阅读全文
摘要:枚举。 枚举两行,然后算这两行之间有多少个矩形满足条件。
阅读全文
摘要:期望dp。 设dp[i][j][k]表示已经有i行有棋子,有j列有棋子,并且放了k个棋子的状态下到达目标状态的期望天数。 dp[n][m][max(n,m)..n∗m]全部置为0。 $dp[i][j][k] = dp[i][j][k+1]*(i*j-k)/(n*m-k)+
阅读全文
摘要:已经确定本题是错题了! 这题有问题,不是后台数据水了就是出题人的做法是错的。 已经发邮件给浙大陈越老师,等待回复中。 觉得自己的做法是正确的话,可以试试下面这组数据。 1 8 8 1 3 2 3 3 4 3 5 4 6 5 6 6 7 6 8 答案应该是: 6 7 1
阅读全文
摘要:贪心,dp。 假设我们知道要选择哪些物品,那么这些物品应该按什么顺序选择呢? 物品A(a1,b1),物品B(a2,b3)。 假设物品A在第x天被选择,物品B在第y天被选择。x<y。那么收益为:P1=a1+(x−1)∗b1+a2+(y−1)∗b2。 假设物品A在
阅读全文
摘要:排序。把每一个长方体拆成6个做,然后排序做即可。
阅读全文
摘要:前缀和。 把区间和为正的都选了即可。
阅读全文
摘要:完全背包。 直接做个背包容量为100000的完全背包,这样就可以避免繁琐的分类讨论了。
阅读全文
摘要:排序,构造。 相当于告诉我们一棵树n个节点,每个节点在哪一层,至少需要移动多少个节点,才能让这些节点变成一棵树。 按照层次排个序移动一下就可以了,优先选择那些不是s但是层次是0的节点,如果没有,那么再选择层次最高的。
阅读全文
摘要:二分答案。 油量越多,显然通过的时间越少。可以二分找到最小的油量,可以在t时间内到达电影院。 一个油箱容量为v的车通过长度为L的路程需要的最小时间为max(L,3∗L−v)。计算过程如下: 假设普通速度运行了距离a,加速运行了距离b,则a+b=L,即b=L−a。 因为
阅读全文
摘要:最小生成树变形,倍增。 每条边有权值1和权值2,要求构造最小生成树,有一条边可以选择权值2,其余边选择权值1。 先对权值1求最小生成树,然后枚举每一条边用权值2去替换树中的边即可。 寻找树上某条连权值最大的边,带修改的可以采用树链剖分;无修改的可以将树有根化,然后计算两点到公
阅读全文
摘要:模拟。 连续的一段a合成一个b。每段中如果数字只有1个,那么可以合成。如果数字个数大于等于2个,如果都是一样的,那么无法合成,否则要找到一个可以移动的最大值位置开始移动。一开始写了一个模拟,没考虑到严格大于,WA在106组数据了......
阅读全文
摘要:计算几何,暴力。 题目中有一句话:The mass of each brick is equally distributed and it will be stable if it is placed on bases $o
阅读全文
摘要:边双连通分量。 这题有一点构造的味道。一个有向图,经过强连通缩点之后会形成一个有向无环图。 如果将最大的强连通分量放在顶端,其余的强连通分量都直接或间接指向他,那么这样就构造出了符合要求的图。 接下来就是要去寻找强连通分量。对于一个无向图来说,每一个边-双联通分量都可以将每条边定向之后构造成一个强连
阅读全文
摘要:贪心,优先队列。 将s按照从小到大的顺序扔进优先队列。从小的开始与电脑配对,如果找不到合适的电脑,那么再变小一次,直到找到与之配对的电脑或者作废。
阅读全文
摘要:区间并。 对于上下两个数字,如果不一样,那么可以计算出哪一段范围内可以保证字典序,并且后面所有位置都无需再考虑。对所有范围求交集就是答案了。 求交集写起来有点烦,直接对不可取的范围求并即可。
阅读全文
摘要:枚举,前缀和。 先从小到大排序,然后枚举最小的数字选择哪一个。接下来就是计算比他大的数做出的贡献。因为肯定是连续的一段贡献都是一样的,因此二分一下就可以了。这样800多ms能水过。 #pragma comment(linker, "/STACK:1024000000,1024000000")
阅读全文
摘要:dfs,构造。 类似于k度限制生成树的想法,可以将s和t先从图中删去,将剩下的部分求连通块,每个连通块内部很容易构造生成树,每个连通块缩成一个点来处理。 连通块分三种: 1.只与s有边 2.只与t有边 3.与s和t都有边 前两种没办法,只能和s和t
阅读全文
摘要:构造。 (1)如果数字中带有0: 1.只有个位是0,这种情况就是给输入的数字+10再输出即可。 2.其余情况就是给输入的数字+1再输出即可。 (2)如果数字中没有0: 从个位开始一位一位拆掉。如果发现能凑出比某一位大一点点的数字,那么剩下的高位就不动了,再从个位开始构造目前能凑出
阅读全文
摘要:线段树,延迟标记。 记录一下每个节点代表的区间的最小值,以及左右端点是否为最小值,记录区间被下压几次作为延迟标记,再记录一下这个区间中有多少个最小值的连通块。 n最大有1亿,可以开动态线段树避免离散化。
阅读全文
摘要:暴力枚举,状态压缩。 枚举哪几行放,复杂度为O(225),大概有3000多万种情况。假设有x行放了,没放的那几行状态或起来为st,如果st中1的个数大于x,那么不可取;否则用x更新答案。
阅读全文
摘要:dp,斜率优化。 设dp[i]表示前i个位置调整成K−Anonymous的最小花费。 那么,dp[i]=min(dp[j]+sum[i]−sum[j]−x[j+1]∗(i−j))。 直接算是O(n2),进行斜率优化即可。
阅读全文