摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 线性筛求出每个数的最小质因子x for 从1 n 对于i,它的最小质因子为x 考虑i=a b 如果i能被x^3整除 那么这x怎么分配给它的两个因子a,b都不行,(都有一个因子会分配至少2个以上,那么我们提出来一个x^2的话,a或 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 写个DP 设f[j]表示已经做的题的状态为j的情况下接着选能获得的最大分数。 显然是个倒推。 记忆化搜索一波 dfs(i,j) 表示当前选了i个题,已选状态为j。 (当然这个i可以不用写。因为可以看看j的二进制形式中1的个数来表 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 定义dis[i][j]表示到达i这个点。 用掉了j次去除边的机会的最短路。 dis[1][0]= 0; 在写松弛条件的时候。 如果用了去除边的机会。 就把机会+1再更新最短路就好。 用spfa会超时。 写个dijkstra+优先 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 Swap操作显然只能对(i 1,i)执行才有用。 不然直接将i翻转以及j翻转 显然比直接交换更优。 那么现在我们就相当于有两种操作。 1.将i翻转 2.将i与i 1交换 可以写个DP。 设dp[i]表示1..i都已经满足s1[i 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 将数组排序一下。 考虑中位数a[mid] 如果a[mid]==s直接输出0 如果a[mid]s,那么我们把a[mid]还是改成s,然后把1..mid 1这里面比s大的都改成s.这样就能满足要求了。(mid+1..n这一部分都是 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 多重背包的二进制优化。 就是将数量x分成接近log2x份 然后这log2x份能组合成1..x内的所有数字。 从而将多重背包转化成01背包 1,2,4,8....贪心地选,然后不够的部分x (1+2+4...)再作为一份就好 【代 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 让你把一个字符串的所有回文子串加起来。(当做数字加起来) 求他们的和。 【题解】 回文树。 从两个根节点分别遍历整棵回文树。 按照每个节点的定义。 得到每个节点对应的数字就好。 (节点之间都有联系,很容易快速搞出来到达下一个节点的数字是什么的。 有点卡内 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 估计试几个就会发现答案总是n 1吧。 队友给的证明 【代码】 cpp include define LL long long define rep1(i,a,b) for (int i = a;i = b;i ) define 阅读全文
摘要:
又是爆炸的一场 心态有点小崩。但问题不大。。 看A题,一直担心有多个正方形。。小心翼翼地看完之后,毅然地交上去了。 [00:08] A【Accpted】 然后开始看B题。 觉得和之前做的某题很像,但翻了翻发现那题是i s(i)所以才有单调性. 然后继续想啊想。突然想到a+b==10000的话岂不是美 阅读全文
摘要:
【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 找到左上角。往下一直走,往右一直走走到B边界就好。 中点的话。直接输出中位数 【代码】 cpp include define LL long long define rep1(i,a,b) for (int i = a;i = 阅读全文