Processing math: 100%

02 2017 档案

摘要:最近在上软件工程实践课程,想做一个类似于QQ空间或者朋友圈一样的效果。即显示所有好友发送的动态以及动态下回复的信息。 自己YY了一种方法,一开始以为不能达到效果,研究了2个小时终于实现了,感觉效果还是很棒棒的,拿来分享一下。神犇请绕道吧~~ listview可以自己排版布局,我们用listview来 阅读全文
posted @ 2017-02-28 20:40 Fighting_Heart 编辑
摘要:简单题。 分情况算一下即可。 阅读全文
posted @ 2017-02-25 21:05 Fighting_Heart 编辑
摘要:二分,贪心。 二分答案,然后贪心验证即可。 阅读全文
posted @ 2017-02-25 21:05 Fighting_Heart 编辑
摘要:排序,贪心。 从小到大排个序算一下就可以了。目测无论从哪个时间点开始算罚时,这样的贪心策略都是正确的。 阅读全文
posted @ 2017-02-25 21:04 Fighting_Heart 编辑
摘要:树的重心,树形dp,背包。 树的重心有两个充分必要条件: 1.某树有两个重心ab <=> ab相邻,断开ab之间的边之后,两个联通分量内的点的个数相同。 2.某树有一个重心a <=>a为根的树,去掉a之后,剩下的联通分量,除去节点个数最多 阅读全文
posted @ 2017-02-22 15:55 Fighting_Heart 编辑
摘要:dp。 这题的本质和求一个有向无环图的最长路径长度的路径是一样的。 dp[i][j]表示到第i天,湿度为a[i],是第j种天气的最大概率。记录一下最大概率是i1天哪一种天气推过来的,然后就可以得到路径了。 阅读全文
posted @ 2017-02-22 09:56 Fighting_Heart 编辑
摘要:排序,贪心,栈,树状数组,二分。 因为要在个数最多的情况下保证收益最多,所以任务和机器都按照y从小到大排序,然后看每一个机器去处理哪一个任务。肯定是在任务的y小于等于机器的y的任务中寻找一个x最大的,这样能保证个数最多的情况下保证收益最多。 阅读全文
posted @ 2017-02-21 19:14 Fighting_Heart 编辑
摘要:模拟退火。 退完火之后还要随机调整位置。 阅读全文
posted @ 2017-02-21 09:51 Fighting_Heart 编辑
摘要:并查集。 将每一个物品拆成两个,两个意义相反,然后并查集即可。 阅读全文
posted @ 2017-02-20 20:58 Fighting_Heart 编辑
摘要:树形dp,位运算。 按位统计贡献。 每一位:统计以u为根的子树中,一端为u,另一端为子树中节点的链异或为10的方案数,dp一下就可以得到。还要统计u的子孙v跨过u进行组合的情况。 阅读全文
posted @ 2017-02-20 20:58 Fighting_Heart 编辑
摘要:二分,排序。 首先感觉题意有问题,什么叫假设今天不喝...... 将f从小到大排序,s也从小到大排序,肯定是期日期大的先买,因此可以对s进行二分,然后验证。 阅读全文
posted @ 2017-02-19 20:04 Fighting_Heart 编辑
摘要:树形dp。 先看权值之和是否为3的倍数,如果不是则一定无解。 如果是3的倍数,可以分两次去切。每次一个节点,要求这个节点不是根,并且的子树权值和为sum/3,又要是某链上深度最深的。 找不到两个依然是无解,否则就有解。 阅读全文
posted @ 2017-02-19 12:48 Fighting_Heart 编辑
摘要:模拟。 情况有点多,需要仔细。另外感觉题目的tf有点不太对......而且数据水了。 0 5 2 2 0 5 这组数据按照题意的话答案可以是24,但是好多错的答案能AC阅读全文
posted @ 2017-02-19 11:38 Fighting_Heart 编辑
摘要:枚举。 枚举两行,然后算这两行之间有多少个矩形满足条件。 阅读全文
posted @ 2017-02-16 18:33 Fighting_Heart 编辑
摘要:矩阵快速幂。 构造一个矩阵,a[i][j]表示一次操作后,j会从i那里得到水的比例。注意k=0的时候,要将a[i][j]置为1阅读全文
posted @ 2017-02-16 18:31 Fighting_Heart 编辑
摘要:暴力。 先删掉一些边,平行的线只保留b最大的。然后暴力,每次放入第i条边,和还没有被完全覆盖的边都算一遍,更新一下。 阅读全文
posted @ 2017-02-16 18:28 Fighting_Heart 编辑
摘要:期望dp。 设dp[i][j][k]表示已经有i行有棋子,有j列有棋子,并且放了k个棋子的状态下到达目标状态的期望天数。 dp[n][m][max(n,m)..nm]全部置为0。 $dp[i][j][k] = dp[i][j][k+1]*(i*j-k)/(n*m-k)+ 阅读全文
posted @ 2017-02-15 21:50 Fighting_Heart 编辑
摘要:已经确定本题是错题了! 这题有问题,不是后台数据水了就是出题人的做法是错的。 已经发邮件给浙大陈越老师,等待回复中。 觉得自己的做法是正确的话,可以试试下面这组数据。 1 8 8 1 3 2 3 3 4 3 5 4 6 5 6 6 7 6 8 答案应该是: 6 7 1 阅读全文
posted @ 2017-02-15 15:43 Fighting_Heart 编辑
摘要:贪心,dp。 假设我们知道要选择哪些物品,那么这些物品应该按什么顺序选择呢? 物品A(a1,b1),物品B(a2,b3)。 假设物品A在第x天被选择,物品B在第y天被选择。x<y。那么收益为:P1=a1+(x1)b1+a2+(y1)b2。 假设物品A阅读全文
posted @ 2017-02-15 15:39 Fighting_Heart 编辑
摘要:最小生成树。 做克鲁斯卡尔的时候,边排序的第一关键字是权值,然后是u,然后是v。记录下用了哪几条边。 因为这些边的第一关键字是权值,所以需要重新按字典序排序。 阅读全文
posted @ 2017-02-15 15:29 Fighting_Heart 编辑
摘要:分类讨论。 分几种情况讨论一下即可。 阅读全文
posted @ 2017-02-14 12:42 Fighting_Heart 编辑
摘要:二分。 二分答案,然后贪心验证一下即可。 阅读全文
posted @ 2017-02-14 12:41 Fighting_Heart 编辑
摘要:排序。把每一个长方体拆成6个做,然后排序做即可。 阅读全文
posted @ 2017-02-14 12:38 Fighting_Heart 编辑
摘要:前缀和。 把区间和为正的都选了即可。 阅读全文
posted @ 2017-02-14 12:30 Fighting_Heart 编辑
摘要:完全背包。 直接做个背包容量为100000的完全背包,这样就可以避免繁琐的分类讨论了。 阅读全文
posted @ 2017-02-14 12:29 Fighting_Heart 编辑
摘要:排序,构造。 相当于告诉我们一棵树n个节点,每个节点在哪一层,至少需要移动多少个节点,才能让这些节点变成一棵树。 按照层次排个序移动一下就可以了,优先选择那些不是s但是层次是0的节点,如果没有,那么再选择层次最高的。 阅读全文
posted @ 2017-02-13 13:35 Fighting_Heart 编辑
摘要:抽屉原理。 先统计最多有sum个船可以放,假设打了suma枪都没打中a个船中的任意一个,那么再打1枪必中。 阅读全文
posted @ 2017-02-13 13:02 Fighting_Heart 编辑
摘要:二分答案。 油量越多,显然通过的时间越少。可以二分找到最小的油量,可以在t时间内到达电影院。 一个油箱容量为v的车通过长度为L的路程需要的最小时间为max(L,3Lv)。计算过程如下: 假设普通速度运行了距离a,加速运行了距离b,则a+b=L,即b=La。 因为 阅读全文
posted @ 2017-02-13 11:18 Fighting_Heart 编辑
摘要:位运算。 两个数的和:A+B=(AandB)+(AorB),那么b[i]+c[i]=na[i]+suma。可以解出一组解,然后再按位统计贡献验证一下。 阅读全文
posted @ 2017-02-12 16:06 Fighting_Heart 编辑
摘要:最小生成树变形,倍增。 每条边有权值1和权值2,要求构造最小生成树,有一条边可以选择权值2,其余边选择权值1。 先对权值1求最小生成树,然后枚举每一条边用权值2去替换树中的边即可。 寻找树上某条连权值最大的边,带修改的可以采用树链剖分;无修改的可以将树有根化,然后计算两点到公 阅读全文
posted @ 2017-02-10 17:52 Fighting_Heart 编辑
摘要:模拟。 连续的一段a合成一个b。每段中如果数字只有1个,那么可以合成。如果数字个数大于等于2个,如果都是一样的,那么无法合成,否则要找到一个可以移动的最大值位置开始移动。一开始写了一个模拟,没考虑到严格大于,WA106组数据了...... 阅读全文
posted @ 2017-02-10 11:21 Fighting_Heart 编辑
摘要:矩阵快速幂。 邻接矩阵的P次方就是走P步之后的方案数,这里只记录能否走到就可以了。然后再判断一下三种情况即可。 阅读全文
posted @ 2017-02-09 22:35 Fighting_Heart 编辑
摘要:计算几何,暴力。 题目中有一句话:The mass of each brick is equally distributed and it will be stable if it is placed on bases $o 阅读全文
posted @ 2017-02-09 22:32 Fighting_Heart 编辑
摘要:边双连通分量。 这题有一点构造的味道。一个有向图,经过强连通缩点之后会形成一个有向无环图。 如果将最大的强连通分量放在顶端,其余的强连通分量都直接或间接指向他,那么这样就构造出了符合要求的图。 接下来就是要去寻找强连通分量。对于一个无向图来说,每一个边-双联通分量都可以将每条边定向之后构造成一个强连 阅读全文
posted @ 2017-02-08 17:12 Fighting_Heart 编辑
摘要:贪心,优先队列。 将s按照从小到大的顺序扔进优先队列。从小的开始与电脑配对,如果找不到合适的电脑,那么再变小一次,直到找到与之配对的电脑或者作废。 阅读全文
posted @ 2017-02-08 14:31 Fighting_Heart 编辑
摘要:区间并。 对于上下两个数字,如果不一样,那么可以计算出哪一段范围内可以保证字典序,并且后面所有位置都无需再考虑。对所有范围求交集就是答案了。 求交集写起来有点烦,直接对不可取的范围求并即可。 阅读全文
posted @ 2017-02-06 16:48 Fighting_Heart 编辑
摘要:枚举,前缀和。 先从小到大排序,然后枚举最小的数字选择哪一个。接下来就是计算比他大的数做出的贡献。因为肯定是连续的一段贡献都是一样的,因此二分一下就可以了。这样800ms能水过。 #pragma comment(linker, "/STACK:1024000000,1024000000") 阅读全文
posted @ 2017-02-06 14:32 Fighting_Heart 编辑
摘要:dfs,构造。 类似于k度限制生成树的想法,可以将st先从图中删去,将剩下的部分求连通块,每个连通块内部很容易构造生成树,每个连通块缩成一个点来处理。 连通块分三种: 1.只与s有边 2.只与t有边 3.与st都有边 前两种没办法,只能和st 阅读全文
posted @ 2017-02-05 11:33 Fighting_Heart 编辑
摘要:构造。 (1)如果数字中带有0: 1.只有个位是0,这种情况就是给输入的数字+10再输出即可。 2.其余情况就是给输入的数字+1再输出即可。 (2)如果数字中没有0: 从个位开始一位一位拆掉。如果发现能凑出比某一位大一点点的数字,那么剩下的高位就不动了,再从个位开始构造目前能凑出 阅读全文
posted @ 2017-02-03 21:17 Fighting_Heart 编辑
摘要:线段树,延迟标记。 记录一下每个节点代表的区间的最小值,以及左右端点是否为最小值,记录区间被下压几次作为延迟标记,再记录一下这个区间中有多少个最小值的连通块。 n最大有1亿,可以开动态线段树避免离散化。 阅读全文
posted @ 2017-02-03 21:12 Fighting_Heart 编辑
摘要:暴力枚举,状态压缩。 枚举哪几行放,复杂度为O(225),大概有3000多万种情况。假设有x行放了,没放的那几行状态或起来为st,如果st1的个数大于x,那么不可取;否则用x更新答案。 阅读全文
posted @ 2017-02-02 18:28 Fighting_Heart 编辑
摘要:dp,斜率优化。 设dp[j][i]表示前i个位置分成j段的最小值,递推式很好写,预处理几个前缀和就可以了,然后斜率优化即可。 阅读全文
posted @ 2017-02-02 12:45 Fighting_Heart 编辑
摘要:dp,斜率优化。 设dp[i]表示前i个位置调整成KAnonymous的最小花费。 那么,dp[i]=min(dp[j]+sum[i]sum[j]x[j+1](ij))。 直接算是O(n2),进行斜率优化即可。 阅读全文
posted @ 2017-02-01 21:06 Fighting_Heart 编辑

点击右上角即可分享
微信分享提示