摘要:
构造。 根据$a[0][0]$可以求得$0$的个数$p$,根据$a[1][1]$可以求得$1$的个数$q$。 如果找不到$p$或$q$,那么就无解。 每一个$0$放到序列中的任何一个位置,假设和前面的$1$产生了$x$对$10$,和后面的$1$产生了$y$对$01$,那么$x+y$一定等于$q$。 阅读全文
posted @ 2016-08-31 20:54
Fighting_Heart
阅读(273)
评论(0)
推荐(0)
摘要:
抽屉原理,快速幂,逆元,概率。 如果$k > {2^n}$,根据抽屉原理可知,答案就是$1$ $1$。 否则概率一定小于$1$,就要计算,公式很简单,上过概率论的应该都会算。 概率为:$1 - \frac{{({2^n} - 0)*({2^n} - 1)*({2^n} - 2)*({2^n} - 3 阅读全文
posted @ 2016-08-31 17:09
Fighting_Heart
阅读(250)
评论(0)
推荐(0)
摘要:
公式。 $a×C_{m + i - 1}^m + d×C_{m + i - 1}^{m + 1}$。 推导过程可以看http://blog.csdn.net/queuelovestack/article/details/52260127 阅读全文
posted @ 2016-08-31 09:43
Fighting_Heart
阅读(146)
评论(0)
推荐(0)
摘要:
博弈,$SG$函数,规律,线段树。 这个问题套路很明显,先找求出$SG$函数值是多少,然后异或起来,如果是$0$就后手赢,否则先手赢。修改操作和区间查询的话可以用线段树维护一下区间异或和。 数据那么大,一看就知道$SG$有规律...... 先写个小数据的$SG$找规律: bool f[200]; i 阅读全文
posted @ 2016-08-31 09:27
Fighting_Heart
阅读(194)
评论(0)
推荐(0)
摘要:
枚举,最短路。 求出5个点出发的最短路,然后枚举一下这些点之间走的顺序。 阅读全文
posted @ 2016-08-31 09:23
Fighting_Heart
阅读(216)
评论(0)
推荐(0)
摘要:
贪心。 尽量把最后面最小的数拿到前面来。 阅读全文
posted @ 2016-08-31 09:21
Fighting_Heart
阅读(149)
评论(0)
推荐(0)
摘要:
$dp$。 一开始想了一个$dp$做法,$dp[i][j]$表示前$i$个数字,下降序列长度为$j$的方案数为$dp[i][j]$,这样做需要先离散化然后用树状数组优化,空间复杂度为${n^2}$,时间复杂度为$O({n^2}\log n)$,这样的做法被$POJ$卡了内存。既然是$MLE$,然后我 阅读全文
posted @ 2016-08-31 08:59
Fighting_Heart
阅读(220)
评论(0)
推荐(0)
摘要:
后缀数组。 将两个串连接在一起,中间用一个字符隔开。然后对后缀进行排序。求出$height$数组。然后枚举相邻两个后缀,看看是否来自两个串,如果是,那么用$height$数组更新答案。 阅读全文
posted @ 2016-08-31 08:56
Fighting_Heart
阅读(157)
评论(0)
推荐(0)
摘要:
暴力。 判断是否$correct$的话开一个$map$就可以了。 如果不是correct的,那么就暴力去找单词。$abs\left( {len\left[ i \right] - lent} \right) > = 2$,满足这个条件的那些$s[i]$就不需要检查了,一定不可能。 如果$len[i] 阅读全文
posted @ 2016-08-31 08:53
Fighting_Heart
阅读(154)
评论(0)
推荐(0)
摘要:
$01$背包。 这个由于有个$Q$的限制,为了去掉后效性,每一个物品第二层的循环$j$最小可能是$Q-P$,那么就按照$Q-P$从小到大对物品排序。 阅读全文
posted @ 2016-08-31 08:46
Fighting_Heart
阅读(151)
评论(0)
推荐(0)
摘要:
暴力$dfs$。 先看数据范围,字符串最长只有$15$,也就是说枚举每个字符后面是否放置“$+$”号的复杂度为${2^{15}}$。 每次枚举到一种情况,看哪些位置能放“$=$”号,每个位置都试一下,然后判断一下是否可行。 最坏复杂度$O({2^{15}}*{15^2})$,事实上是达不到最坏复杂度 阅读全文
posted @ 2016-08-31 08:39
Fighting_Heart
阅读(135)
评论(0)
推荐(0)

浙公网安备 33010602011771号