摘要:
洛谷板子题 (听过不止一遍,然而却一直没写过板子,于是今天模拟少了40分暴力分...) 一、字符串修饰 首先要修饰一下读进来的字符串。 为什么呢? 看两个字符串: ABCCBA ABCDCBA 显然这两字符串是回文的 然而两个串的对称中心的特性不同,第一个串,它的对称中心在两个C中间,然而第二个串, 阅读全文
摘要:
题目大意 略... (吐槽这题面...让我毫无阅读兴趣) 题解 首先要求出在以两条斜线为新坐标轴下,每个点的坐标 那么....按x先排序 再求y的最长上升子序列 复杂度O(nlogn)吧 记得开longlong #include<cstdio> #include<algorithm> #includ 阅读全文
摘要:
题目大意 给一棵树,求∑∑w_i*w_j*w_LCA(i,j) w_i表示i点权值 题解 显然一点点求lca是肯定会tle的 那就想如何优化 i和j的lca和j和i的lca是一样的 DFS,在每个x处,统计以它为LCA的答案总和 假设x有k个子树,权值和分别是S1,S2,…,Sk 设P=S1+S2+ 阅读全文
摘要:
题目大意 m个操作, 1:添加一个字符串 2:查询字符串s是否被添加过(中至多包含一个通配符“*”) 题解 trie树可以得部分分 用map映射 '*'就枚举26个英文字母来判断就可以了 #include<cstdio> #include<algorithm> #include<iostream> 阅读全文
摘要:
对于⼀个已知的Ans,更新Ans的条件为:(P1 + P2 + …… + Pk) / (T1 + T2 + …… + Tk) > Ans变形后:P1 – T1 * Ans + P2 – T2 * Ans + …… + Pk – Tk * Ans > 0所以将Pi – Ti * Ans作为边权,⼆分A 阅读全文
摘要:
一道思维题?! 找到最⼤大的a使得a^3不超过m,接下来X的第⼀一块积⽊木必然为a或a-11.⽤用a,m2=m-a^32.⽤用a-1, X最⼤大为a^3-1, m2 = a^3-1-(a-1)^3=a^2-a3.⽤用a-2, X最⼤大为(a-1)^3-1,m2=(a-1)^3-1-(a-2)^3=a 阅读全文
摘要:
其实很简单的啊,就简简单单的分别记录两个数组中每个字母出现的次数,分别排序,判断是否相同就好。 我看完题,想出了一个极其错误的思路:直接把储存字符的数组排序,再判断a[ i ] + (b[1] - a[1])是否等于b[ i ] 。为什么错误呢?因为这么加不会使Z跳回A而会使Z跳到其它字符(根据as 阅读全文
摘要:
咕咕咕 由于我好久都没有独立思考了(抄了好久题解),思维什么的早没有了。 看完题只能想到一种暴力:遍历+LCA 题目给出的是一个最小生成树,我们可以从边入手,把每条边所连的左右两个点分别看做一个集合, 左边集合和右边集合所要连的边数是(cnt[i]*cnt[j]-1),-1是因为要抛去本身这条边 我 阅读全文
摘要:
咕咕咕 (努力让自己的题解变成认真的题解,但还是忍不住要吐槽,一本通里题目名字为什么都这么中二) 一开始,觉得就是一个最小生成树的裸题。 于是就没想太多,直接,在点权值中取最小值,再直接求最小生成树,求和。 结果凄惨的只拿了50,de了半天bug,甚至怀疑过自己是不是kruskal的板子写错了 还是 阅读全文
摘要:
咕咕咕 prim的特点是从一个点开始,不断把距离最短的点加入图中,在以此延伸。是一种贪心的想法。当知道prim的特点的时候,就可以想到这题用prim。 这题又要求实际路径=最短路径,,也可以想到用dijkstra。 具体做法: 用dijkstra求出1号犯贱到每个房间的单元最短路。把树形城堡看做以1 阅读全文