模拟退火 简介 总所周知,模拟退火十分玄学,用于求解某些方案数极大(无穷)的问题上,有些NP问题在小范围上,可以使用模拟退火求最优解(TSP问题)。 实现 如果新的状态解更优,则更新答案,否则以一定概率接受新状态。 状态转移 假如现在要求状态的最小值。 定义:TTT 为当前温度,E1E_1E1 为新状态,E0E_0E0 为原状态,则发生状态转移的概率为: P(E1−E0)={1E1<E0 2021-09-01 coding > algorithm #模拟退火
字符串相关算法 字符串 Trie树 UVA - 1401 - Remember the Word - Trie+DP组合,UVA - 11732 - “strcmp()” Anyone? - Trie #define reset(A) memset(A, 0, sizeof(A)) const int maxnode = ...; const int maxc = ...; struct Trie { 2023-05-30 coding > algorithm #字符串
ABC212 AtCoder Beginner Contest 212 E - Safety Journey 题意 给出一个含有 N(N⩽5000)N(N\leqslant 5000)N(N⩽5000) 个顶点的完全图,编号从1到N,从中删去 M(M⩽5000)M(M\leqslant 5000)M(M⩽5000) 条边,要求每次从1号顶点出发,经过 K(K⩽5000)K(K\leqslant 5000)K 2021-08-07 coding > atcoder #数论 #原根 #dp #图论 #树
ABC213 AtCoder Beginner Contest 213 E - Stronger Takahashi 题意 给出一个迷宫: .代表可以走的道路,#代表墙,你可以花费一点力气打破任意一个 2×22\times 22×2 区域中的所有的墙 请问从迷宫的左上角走到右下角,最少要花费多少力气? 思路 这道题相比F题要水多了,但我并没看出来 这题可以相当于建图跑最短路,但由于图上的边权只有0和1,所 2021-08-09 coding > atcoder #01BFS #SAM
ABC214 AtCoder Beginner Contest 214 D - Sum of Maximum Weights 题意 给出一颗 NNN 个顶点的树,每条边都具有边权值,定义与顶点有关的二元函数 f(u,v)f(u, v)f(u,v) 为 顶点 uuu 到顶点 vvv 的最短路径上的边权的最大值。 求 ∑i=1N−1∑j=i+1Nf(i,j)\sum_{i=1}^{N-1}\sum_{j=i+1 2021-08-15 coding > atcoder #dp #贪心 #模拟 #并查集
AtCoder Beginner Contest 215 - ABC215 AtCoder Beginner Contest 215 E - Chain Contestant 题意 给出一个由 101010 种大写字母 A∼JA\sim JA∼J 组成的字符串 SSS,长度为 NNN,求 SSS 有多少个下标序列满足下列条件: 令下标序列所对应的 SSS 的子序列为 TTT,满足同一种字母在 TTT 中都是连续出现的,如:AAABBCCC 满足条件,但 AABBACC 2021-08-23 coding > atcoder #状压dp #二分答案
AtCoder Regular Contest 125 - ARC125 AtCoder Regular Contest 125 B - Squares 题意 给出一个 NNN,求有多少对 (x,y)(x,y)(x,y) 满足如下条件: 1⩽x,y⩽N1\leqslant x, y\leqslant N1⩽x,y⩽N。 x2−yx^2-yx2−y 是一个平方数。(规定 000 也是平方数) 答案对 998244353998244353998244353 2021-08-23 coding > atcoder #双指针 #构造
ARC159 - AtCoder Regular Contest 159 C. Permutation Addition 题意 给出长度为 NNN 的正整数数列 A={a1,⋯ ,aN}A = \{a_1,\cdots,a_N\}A={a1,⋯,aN},定义一次操作如下: 选择一个 {1,⋯ ,N}\{1,\cdots,N\}{1,⋯,N} 的排列 P={p1,⋯ ,pN}P = \{p_1,\cdots,p_N\}P={p1,⋯,pN},更新 A←{a1 2023-04-11 coding > atcoder #构造题
CF1451E - Codeforces Round 685 (Div. 2) E. Bitwise Queries 题目链接:E. Bitwise Queries 题意 这是一道交互题,分为两个版本 Easy 和 Hard 两者只在询问次数上不同。 给出一个长度为 nnn 的非负整数序列 a1,a2,⋯ ,ana_1, a_2, \cdots, a_na1,a2,⋯,an,并保证 ai∈[0,n−1]a_i \in [0, n-1]ai∈[0,n−1] 和 n=2tn=2^tn=2t,你可以进行一下 2021-09-03 coding > cf #位运算 #交互题
CF1515 E. Phoenix and Computers E. Phoenix and Computers 题目大意 初始状态时,有 n(n⩽400)n(n\leqslant 400)n(n⩽400) 台没有启动的电脑,每次你可以选择手动一台电脑,当一条未启动的电脑相邻的两台电脑都已经启动时,中间的电脑会自动启动,请问将所有的电脑都启动,你一共有多少种启动方案?答案对 M(108⩽M⩽109)M(10^8\leqslant M\leqslant 10 2021-07-29 coding > cf #动态规划 #组合数学