随笔分类 - /* 圣人不死 AC不止!*/
coding不息!
摘要:暴力 A - Orchestra import java.io.*; import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner (System.
阅读全文
摘要:暴力 A - Ebony and Ivory import java.util.*; import java.io.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner (n
阅读全文
摘要:题目传送门 题意:训练指南P250 分析:DFS记忆化搜索,范围或者说是图是已知的字串构成的自动机图,那么用 | (1 << i)表示包含第i个字串,如果长度为len,且st == (1 << m) - 1则是可能的。打印与之前相似。 #include <bits/stdc++.h> using n
阅读全文
摘要:题目传送门 题意:训练指南P248 分析:逆向考虑,比如一个全排列:7345261,它也可以表示成题目中的形式,第一个数字7是由6 * (7 - 1)得到的,第二个数字3有2 * (7 - 2)得到,所以只要树状数组单点修改二分(找最远的因为有些位置是0)查询当前第s[i] + 1的数字(在BIT中
阅读全文
摘要:题目传送门 题意:n个数,两种操作,一是每个数字加x,二是查询& (1 << T) == 1 的个数 分析:因为累加是永远的,所以可以离线处理。树状数组点是c[16][M] 表示数字x%(1 << j) 后的数字pos,考虑第j位的个数。当询问时根据add不同的值不同的处理情况。 #include
阅读全文
摘要:cf的一次数学场。。。 递推 C 题意:长度<=n的数只含有7或8的个数 分析:每一位都有2种可能,累加不同长度的方案数就是总方案数 组合 G 题意:将5个苹果和3个梨放进n个不同的盒子里的方案数。 分析:经典的组合题目:C(n+5-1, 5) * C(n+3-1, 3)。因为可以同一个盒子放多个苹
阅读全文
摘要:居然补完了 组合 A - Far Relative’s Birthday Cake import java.util.*; import java.io.*; public class Main { public static void main(String[] args) { Scanner c
阅读全文
摘要:1001 Rikka with Chess ans = n / 2 + m / 2 1002 Rikka with Graph 题意:n + 1条边,问减去至少一条使剩下的图连通的方案数。 分析:原来暴力选一条或两条就行了,脑子笨了。判连通用BFS或并查集,此题并查集更好 #include <cst
阅读全文
摘要:数学 1001 KK's Steel 类似斐波那契求和 #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <string> #include <vector> #include <m
阅读全文
摘要:后面的题目补不懂了 暴力 1001 Clarke and chemistry 这题也把我搞死了。。枚举系数判断就行了 #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> #include <map> i
阅读全文
摘要:贪心 A - Guest From the Past 先买塑料和先买玻璃两者取最大值 #include <bits/stdc++.h> typedef long long ll; int main(void) { ll n, a, b, c; std::cin >> n >> a >> b >> c
阅读全文
摘要:在家补补题 模拟 A - Robot Sequence #include <bits/stdc++.h> char str[202]; void move(int &x, int &y, char ch) { if (ch == 'U') x--; if (ch == 'D') x++; if (c
阅读全文
摘要:模拟 1001 Jam's math problem 判断b ^ 2 - 4ac是否为完全平方数.当delta < 0, sqrt (delta) 输出为nan, 但是好像也能计算? #include <cstdio> #include <cstring> #include <algorithm>
阅读全文
摘要:在家都变的懒惰了,好久没写题解了,补补CF 模拟 A - Wet Shark and Odd and Even 暴力 B - Wet Shark and Bishops 开始想错了,当成斜率相等的。还好1000范围不大,统计矩阵每条对角线上的个数加点小优化就过了,代码丑。。。 期望 C - Wet
阅读全文
摘要:水A - Pasha and Stick#include using namespace std;typedef long long ll;const int N = 1e5 + 5;const int INF = 0x3f3f3f3f;int main(void) { int n; scanf ...
阅读全文
摘要:题目传送门题意:给一些对集合的操作,询问每一次操作后栈顶的集合元素个数分析:首先{}是空的,每一次add时候,{} -> { {} }变成了有一个元素的集合,利用set和stack,map容器能很方便解决这道题。 if (!mp[s1]) mp[s1] = ++cnt; ...
阅读全文
摘要:题目传送门题意:题意坑爹。问符合条件的的山顶个数分析:降序排序后从每个点出发,假设为山顶,如果四周的点的高度>h - d那么可以走,如果走到已经走过的点且染色信息(山顶高度)不匹配那么就不是山顶。重点在于就算知道不是山顶也要染色完。#include using namespace std;const...
阅读全文
摘要:题目传送门题意:给一些传感器,范围在r内,再给一些询问点,问这些点能有几个传感器收到,当有墙隔绝时信号减弱,范围变小分析:set存储传感器,用set的find来查找是否是传感器。因为询问点少,可以枚举询问点的r的范围的所有整数点,+线段相交新模板:)#include using namespace ...
阅读全文
摘要:题目传送门题意:训练指南P246分析:主要是第二种操作难办,并查集如何支持删除操作?很巧妙的方法:将并查集树上p的影响消除,即在祖先上(sz--, sum -= p),然后为p换上马甲:id[p] = ++pos(可多次),这样id[p]就相当于是新的一个点,那么在Find(x)寻找祖先时要用x的马...
阅读全文
摘要:题目传送门题意:训练指南P245分析:首先这道是经典的并查集题目,利用异或的性质。异或性质:x ^ 0 = x -> a ^ a = 0 -> x ^ a ^ a = x,即一个数对某个数异或偶数次等于它本身。第一种操作:p = v,设立一个超级根节点RT,rt[p] = RT, edge[p] =...
阅读全文