[CSAcademy]A-Game】的更多相关文章

题目链接:https://csacademy.com/contest/arhiva/#task/force_graph/ 大意是有若干个节点,每个节点对应一个二维坐标,节点之间相互有斥力存在.同时有些节点之间有变存在.对于有边存在的节点,他们互相的斥力大小为F1*dis值,否则则为F2*dis值,其中dis值为节点之间的欧氏距离.问每个节点受到的斥力大小. 这个其实就是很简单的数学推一下:先假设所有的点都受到F2*dis值,然后再加上所有有边的其他节点的斥力修正. #include <iostr…
题目链接:https://csacademy.com/contest/arhiva/#task/long_journey/ 大意是有一张无向不带权的图,两个人同时从s点出发,分别前往a点和b点,且每个人应该走s到a和s到b的最短路,问他们可以一起走的最大距离是多少. 我一开始的想法是以s为源点bfs,做出所有点的前驱,然后判断a回到s和b回到s有多少点是共享的.WA了,后来一想,这么做确实是错的,因为很有可能a回到s的路是一条b不会走的路.然后变了下思路,直接分别以s,a和b为源点bfs,做出三…
题目链接:https://csacademy.com/contest/arhiva/#task/swap_pairing/ 大意是给2*n个包含n种数字,每种数字出现恰好2次的数列,每一步操作可以交换相邻的两个数字,问最少需要操作多少次,可以使得所有的同种数字都相邻. 我的做法是考虑不同的数对的数字在原来数列中的位置关系,有三大类,如果我们用[]和{}表示的话就是: []{} [{]} [{}] 这三种位置情况. 第一种情况对答案的贡献应当是0. 第二种情况对答案的贡献应当是1. 第三种情况对答…
[CSAcademy]Find the Tree 题目大意: 交互题. 有一棵\(n(n\le2000)\)个结点的树,但是你并不知道树的形态.你可以调用\({\rm query}(x,y,z)\)(其中\(x,y,z\)互不相同)得到与\(x,y,z\)三点距离之和最小的点\(t\).要求你使用不超过\(25000\)次询问,求出树上的所有边. 保证树的形态随机. 思路: 一开始先随便找两个点\(x,y\),枚举第三个点\(z\),询问\({\rm query}(x,y,z)\),则返回的\(…
[CSAcademy]Sum of Powers 题目大意: 给定\(n,m,k(n,m,k\le4096)\).一个无序可重集\(A\)为合法的,当且仅当\(|A|=m\)且\(\sum A_i=n\).定义一个集合的贡献为\(\sum A_i^k\),求所有满足条件的集合的贡献之和. 思路: \(f[i][j]\)表示将\(j\)个数之和为\(i\)的方案数,有如下两种转移: \(f[i][j]+=f[i-1][j-1]\),表示新加入一个元素\(1\): \(f[i][j]+=f[i-j]…
[CSAcademy]Or Problem 题目大意: 一个长度为\(n(n\le2\times10^5)\)的序列\(A(0\le A_i<2^{20})\),将其分为恰好\(m\)个连续段,设每一段的代价为这一段数字的或,总代价为每一段代价和.求最小代价和. 思路: 一个普通的DP思路是,对于每个数\(A_i\),枚举每一位,找到上一个在这一位上为\(1\)的数\(A_k\),\(A_{k+1\sim i}\)为最后一段.转移方程为\(f[i][j]=\max\{f[k][j-1]+\vee…
[CSAcademy]Virus on a Tree 题目大意: 给你一棵\(n(n\le10^5)\)个点的树,一开始点\(1\)有病毒,可以沿着边扩散.你可以事先切掉若干条边,使得病毒扩散不超过\(k\)个结点.告诉你哪些边可以切,问最少需要切掉多少条边. 思路: 从\(1\)开始DFS,碰到一条可以切的边就返回.将得到的边按照子树大小排序,把能加上的边都加回去. 源代码: #include<queue> #include<cstdio> #include<cctype&…
[CSAcademy]Cycle Tree 题目大意: 定义环树是一张无向连通的简单图,它的生成方式如下: \(2\)个点\(1\)条边的图是环树: 对任意一个环树,加入\(k\)个点\(a_{1\sim k}\),加入方式为从原图中选择一条边\((u,v)\),连接\((u,a_1),(a_1,a_2)\ldots(a_{k-1},a_k),(a_k,v)\),得到的图也是环树. 给定一个\(n(n\le5\times10^4)\)个点,\(m(m\le10^5)\)条边的环树,求最大独立集大…
csacademy description 有\(M\)种颜色编号为\(1-M\).现给树上的每个点染上这\(M\)种颜色中的一种,定义一棵树是\(\mbox{colorful}\)的当且仅当这棵树上\(M\)种颜色都出现了至少一次.定义一片森林是\(\mbox{colorful}\)的当且仅当其中的每一棵树都是\(\mbox{colorful}\)的. 求\(n\)点带标号的\(\mbox{colorful}\)的森林的数量模\(924844033\). \(n\le10^5,m\le50\)…
[CSAcademy]Squared Ends 题目大意: 给你一个长度为\(n(n\le10^4)\)的数列\(\{A_i\}(A_i\le10^6)\).定义区间\(A_{[l,r]}\)的代价为\((A_l-A_r)^2\).求将\(\{A_i\}\)划分成\(k(k\le100)\)个区间的最小代价. 思路: 不难想到一种动态规划,用\(f[i][j]\)表示已经划分了\(i\)个区间,结尾是\(j\)的最小代价.转移方程为: \[ f[i][j]=\min\{f[i-1][k-1]+(…