摘要:
第三场了,还是只有一道题能在赛后补出来。题目大意:给出n个数,初始值为0.有三种操作:1.将某一个数加d。2.询问区间[l,r]之间的数总和。3,将区间[l,r]之间的数变成与其距离最近的斐波那契数,若两边距离相同则选择小的。解题思路:线段树对于第一种操作使用点更新,对于第三种操作使用区间更新。居然... 阅读全文
摘要:
继续来置换,这次的题也是很简单的。题目大意:对于一个长度为n的字符串,有一个数组表示第i个字符放到那个位置。输入多个字符串,问这样操作k次后的字符串是什么样子的。解题思路:对于每一个置换,我们会求出循环节,这样可以减少模拟的次数。下面是代码:#include #include #include #i... 阅读全文
摘要:
这道题运用了置换的知识。题目大意:用两两交换的方式给一个数列排序,每交换一次的代价是这两个数之和求最小代价。解题思路:对于这种情况,我们在数列中找置换环。每个置换环内的数都是可以回归到它应有的位置上并且不影响其他的置换环。置换环归位的代价有两种,第一种是用环内最小的数与其他数交换,另一种是用整个数列... 阅读全文
摘要:
这个题和POJ 1286 是一个题,只不过那是一个颜色数量固定的题而这个不固定。这是链接:POJ 1286 Necklace of Beads下面是代码:#include #include #include #include #include #include #include #include #... 阅读全文
摘要:
Polya定理是个很神奇的东西~题目大意:n个珠子串成一个圆,用三种颜色去涂色。问一共有多少种不同的涂色方法。不同的涂色方法被定义为:如果这种涂色情况翻转,旋转不与其他情况相同就为不同。解题思路:Polya定理模版题。对于顺时针长度为i的旋转,为pow(3,__gcd(n,i);对于翻转,当为奇数时... 阅读全文
摘要:
果然还是被虐的份,啥都不说了,还是安心看书学吧,这两天被数学虐残。这是一道求期望的题,想不明白,贴上官方的解题报告。留着慢慢研究 。好吧看到其他人写的发现有自带函数,就再贴一个新的。就得在最下面:import java.math.BigInteger;import java.util.Scanne... 阅读全文
摘要:
多校训练就这么华丽丽的到了 ,于是乎各种华丽丽的被虐也开始了。这是多校的1002; 最小费用最大流。题目大意:有n*m个方格,每个方格都一个的十进制一位的数。你可以操作K次。对于每一次操作,你可以选择一个出发点向下或向右Jump。跳的花费是|x1-x2|+|y1-y2|-1的能量。如果你跳的这两个位... 阅读全文
摘要:
题目大意:给出一棵树,求去掉一条边之后两棵子树节点权值和作差的最小值。解题思路:这不知道怎么用树形DP做,只是个DFS就过了。还手残了一次。思路具体看代码。下面是代码:#include #include #include #include #include #include #include #in... 阅读全文
摘要:
题目大意:一棵树上每一个节点都有几个苹果。问在根节点出发,走不大于K步的情况下最多能取多少个苹果。解题思路:树形DP,对于每一个子树的根节点src,都有dp[src][i][0],表示从src走i步可以回到src最多能够得到多少苹果。dp[src][i][1]表示从src走i步没有回到src最多能够... 阅读全文
摘要:
树状DP第二题,这个题真的好复杂~~题目大意:有一个n个结点的树,问至少去掉几条边可以产生一个有p个节点的子树。解题思路:dp[i][j]表示以i号节点为根的子树,当有j个结点时最少需要去掉几条边。初始化:当只有1个节点时,一定是连接它到孩子结点的所有边都去掉。设某一孩子结点标号为v 则dp[i][... 阅读全文