• 2024-03-07AT_abc338_f [ABC338F] Negative Traveling Salesman 题解
    分析考虑状压。定义状态函数\(f_{i,j}\)表示在经过点的情况为\(i\)且最后停在点\(j\)的最小花费。那有:\(f_{i,j}=\min\{f_{i',k}+w_{k\toj}|k\toj\}\)。然后就过不了样例一。根据样例一,可以发现\(f_{3,2}=f_{2,2}+w_{2\to1}+w_{1\to2}\)。也就是说我们在原本已经走
  • 2024-02-02ABC338 A~D讲题
    A\(\text{Link}\)给你一个长度为\(n\)的字符串\(s\),判断\(s\)是否满足以下条件:\(s\)的第一个字符是大写字母,其余字符都是小写字母。代码:#include<bits/stdc++.h>usingnamespacestd;constintMAXN=1e5+5;chars[105];intmain(){ scanf("%s",s+1)
  • 2024-01-30abc338解题报告
    A略B略C略D简要题意思路点拨考虑对于相邻的两个需要旅行的元素\((u,v)\),我们认为\(u<v\)。如果一个桥的左端点在\(u\)到\(v-1\)之间,需要\(n-v+u\)的代价。反之只需要\(v-u\)的代价。使用差分数组维护即可。E简要题意思路点拨对于一条边\(u,v\)认为\(
  • 2024-01-29ABC338 F
    link观察到\(n\)的范围不大,考虑状压。\(dp_{i,S}\)表示在经过顶点集合状态为\(S\)的情况下,终点为\(i\)的最小步数。错误示范:考虑对于状态\(S\),直接遍历经过的顶点\(i\),枚举\(i\)的出边进行转移。#include<bits/stdc++.h>typedeflonglongLL;typedefstd::
  • 2024-01-28ABC338 F Negative Traveling Salesman 题解
    QuestionABC338FNegativeTravelingSalesman给出一个\(N\)个点\(M\)条边的有向图,边权可能为负数,但不可能有负环每经过一条边就要加上这条边的代价求,一条路径经过所有的点,并且要求总代价最小Solution观察到\(N\le20\)自然而然想到状压因为多次经过一条边的代价是
  • 2024-01-28ABC338 D Island Tour 题解
    Question有\(n\)座海岛由\(n\)条桥连着,第\(i\)座桥连接第\(i\)和\(i+1\)座海岛,第\(n\)座桥连接第\(n\)和\(1\)座海盗有一条长度为\(m\)的旅游路线,第\(X_i\)表示依次到达的岛屿现在需要切断一条桥,求总旅游路线最小值Solution显然,从第\(X_{i-1}\)到\(X_
  • 2024-01-28ABC338 E Chords 题解
    Question一个圆上有\(2N\)个点均匀分布,给出\(N\)条线,每条线连接两个顶点问,有没有两条线相交Solution也算一个比较典的题目考虑到这种两两配对,配对中有没有交错关系的可以考虑异或哈希因为一个数异或两次等于它本身,所以我们可以用异或来实现一个“撤销”操作我们当我
  • 2024-01-27ABC338 题解(A-E)
    前言:F,G后续补充。A题意判断一个字符串,是否满足只有第一位为大写字母,其余为小写字母。Sol字面意思模拟即可。Code#include<bits/stdc++.h>#definelllonglong#defineN200005#defineendl"\n"#definefifirst#definesesecondusingnamespacestd;constll