题目大意
给定一个无向图,判断该图是否为二分图(即是否能将所有点分成两个集合,使得所有边都只连接不同集合的点)。
AC代码
1 |
|
给定一个无向图,判断该图是否为二分图(即是否能将所有点分成两个集合,使得所有边都只连接不同集合的点)。
1 | #include <iostream> |
给定一个有向带权图(N 点 M 边),求从源点 s 到所有其他点的最短路径长度。数据范围较大(Nle105,Mle2times105),需要 O(MlogN) 级别的算法(如堆优化 Dijkstra)。
注意,priority_queue的比较操作符与sort,set是反的
参考题解:https://www.luogu.com.cn/problem/solution/P4779
其实总结来讲就是使用堆然后找到dis值最小的点,将其确认为确定点(已经固定了,dis值不太可能再更新了)
https://www.luogu.com.cn/record/181960419
1 | #include <iostream> |
未经堆优化的算法(其实不是Dijkstra)TLE
https://www.luogu.com.cn/record/181877100
1 | #include <iostream> |
给定一个有向带权图(N 点 M 边),求从源点 s 到所有其他点的最短路径长度。如果无法到达则输出特定值(如 231−1)。数据范围较小,允许 O(NM) 算法。
https://www.luogu.com.cn/problem/P3371
1 | #include <iostream> |
第一次提交就基本AC了,没啥心路历程
给定一个字符串 S,求有多少个三元组 (i,j,k) 满足 1≤i<j<k≤∣S∣ 且 Si=Sk。

可以想办法简化这个的计算(用前缀和)
比较具象化的就是这个

然后就AC了,记得开long long
AC https://atcoder.jp/contests/abc375/submissions/58758528
1 | #include <iostream> |
我写的逻辑简单但超时代码
https://atcoder.jp/contests/abc375/submissions/58745887
1 | #include <iostream> |
优化了一下,现在只TLE 4个点了
https://atcoder.jp/contests/abc375/submissions/58746864
1 | #include <iostream> |
AI的AC代码:
https://atcoder.jp/contests/abc375/submissions/58722299
1 | #include <iostream> |
算法优化了,但WA了6个点
https://atcoder.jp/contests/abc375/submissions/58757772
1 | #include <iostream> |
我说怎么会没过,原来是没开long long
给定一个 N×N 的网格字符矩阵。对于每个 i (1leileN/2),将以 (i,i) 为左上角、(N+1−i,N+1−i) 为右下角的正方形区域顺时针旋转 90 度。求最终的网格状态。

这题其实纯模拟是做不出来的,需要一些小的优化技巧(如上图)
更加具象化一点是这样

AC代码
1 | #include <iostream> |
纯模拟的TLE代码
1 | #include <iostream> |