摘要:
也是给这个题目跪了一天。。。时间不多了,也不多讲首先要用 nlogn的优先队列dijstla来求最短路,n^2的会超时,不过发现SPFA好像也可以过,他的复杂度应该介于NlogN和N^2之间。然后统计可以去掉的铁路条数才是难点一开始我采用边跑最短路边标记,最后再统计,发现漏了好多情况,自己想了个数据... 阅读全文
摘要:
这个题首先要利用题目的特性,先贪心,否则无法进行DP因为求期望的话,越后面的乘的越大,所以为了得到最小值,应该把概率值降序排序,把大的数跟小的系数相乘然后这种dp的特性就是转移的时候,由 i推到i+1每次添加一个数,就要考虑这个新数应该和谁放在一组,枚举他放在哪一组即可dp[i][j]代表当前第i个... 阅读全文
摘要:
先输入n个字符串的字典,每个字符串的前缀+后缀可以组成新的合法字符串,但肯定是有重复的,问从给定的字符串,生成的所有可能的字符串为多少个把前缀和后缀压入字典树,达到前缀和后缀的去重,首先的总和即为前缀数目乘以后缀数目,之后为了去重,记录每个前后缀非第一个相同的每个字母,则每个相同字母必定会产生重复。... 阅读全文
摘要:
昨晚CF碰到的题目,昨晚CF跪了啊啊啊题意比较简单,给定一排挨在一起的板子,宽度都为1,高度不一,一个刷子宽度也是1,可以横着刷,也可以竖着刷,但是任何时刻刷子都要在板子上,也就是说,如果横向的时候,出现断层,就要算2次或者多次了 最后求全部刷完的最小刷的次数昨晚真的是想了各种方法,dp也想了,二分... 阅读全文
摘要:
给定n m kn和m为一个矩阵的行和列,都从1开始,矩阵的每个元素的值即为 i*j(行*列),求里面第k个数还想找什么规律,发现虽然矩阵里面很有规律,但是n 和m在不断变化 根本不好找其实元素从 1 到 n*m,直接二分,每次二分完后,枚举所有行,通过min(mid/i,m)可以马上得到该行小于等于... 阅读全文
摘要:
这题真是坑啊,题意不明,其实就是往桟里面压入空的set集合,所以之前的询问大小都是只有0,只有add的时候,才会产生新的占空间的集合用stack和set直接进行模拟#include #include #include #include #include #include using namespac... 阅读全文
摘要:
这个题意搞了半天才搞明白 就是如果定义一个d-summit,即从该点到另一个更高的点,经过的路径必定是比当前点低至少d高度的,如果该点是最高点,没有比他更高的,就直接视为顶点 其实就是个BFS染色,先按降序排序,然后每个点对其可到达的点染色,h-d的点为边界,走到这里就不用往下染了 然后其他店染色的... 阅读全文
摘要:
给定N个点的坐标,代表N各城市,有M种操作,共分两种,一种是连线,把两个点连起来(一旦构成连通图,这个连通图即为一个州),还有种询问操作,为y=c,(c为小数部分恒为.5的实数),问y=c这条线经过了多少个大周,这些州总共有多少个城市很明显要用到并查集,比较好的做法是把并查集落实到线段树上,并查集维... 阅读全文
摘要:
题意很简单,给定一个N*N的大矩阵,求其中数值和最大的子矩阵。一开始找不到怎么DP,没有最优子结构啊,后来聪哥给了我思路,化成一维,变成最大连续和即可。为了转化成一维,必须枚举子矩阵的宽度,通过预处理的suffix可以很快计算出每一列某一段的和,然后进行一维DP即可。。总复杂度为 O(N^3);#i... 阅读全文
摘要:
我们知道1——k有K!种排列,现在给定k和n,要你按字典序输出 第n种排列的数列而且题目给的 n是 n=S1(k-1)!+S2(k-2)!+...+Sk-1*1!+Sk*0!(0=#include #include #include #define N 50000+10using namespace... 阅读全文