10 2019 档案
摘要:其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为1。如上图中, 若医院建在1 处,则距离和=4+12+2*20+2*40=136;若医院建在3 处,则距离和=4*2+13+20+40=81…
阅读全文
摘要:题意:给定一颗树,第一次选一个点涂黑,贡献是与当前点相连的白点数量(联通分量),剩下每次只能选与黑点相邻的白点,直到整棵树涂黑,问最大能贡献多少 考虑问题本质,相连的白点就是子树大小,不管选择方式如何只要根固定了答案是唯一的。 并且考虑维护子树大小数组,可以发现对于根与根相邻的两点间子树大小非常好转
阅读全文
摘要:A.给定两个数字的开头的第一位字符,问能不能凑成两个数字使得x = y + 1 while(cin >> a >> b) { if(a == 9 && b == 1) { cout << "99 100" << '\n'; return 0; } if(a == b) { cout << a <<
阅读全文
摘要:C 给定1000*1000的矩阵,每次将一个子矩阵内全部值赋值为1,问四联通块数量 Q 3e4 首先考虑复杂度,3e4次操作的合并暴力肯定不行,并且要考虑已经为1的块不应该再次考虑 1.考虑合并操作,对于一个0点,当他变为1对答案的影响只有几种情况 周边都是0,总联通联通块数量加1 周边有(1 -
阅读全文
摘要:题意:给定一底面积为正方形的方体并装入x体积的水,问最大倾斜角度使得水不流出 如图所示只有两种情况且面积具有单调性 二分求解即可 /* Zeolim - An AC a day keeps the bug away */ //#pragma GCC optimize(2) //#pragma GCC
阅读全文
摘要:问题:给定一括号序列,问交换任意一对括号后,使序列任意循环滚动,这len种滚动串最大有多少个合法序列 首先若左括号不等于右括号必死无疑。 剩下考虑枚举交换,对于相同括号交换后没意义,out 对于不同括号交换后,假设序列已经合法,则滚动合法情况数就等于序列中满匹配的括号序列数 定义满匹配: 对于序列(
阅读全文
摘要:A - Pens and Pencils emm题意忘了 B - Rooms and Staircases 有两层房子,每层有k间 每间要么是0要么是1 0只能左右, 1可以上下 问最多能走多少间。 不用考虑上下左右来回走,枚举每个转折上面走最大下面走最大更新极值即可,来回走必然不如这样优 /* Z
阅读全文
摘要:A: 将数分为k组使得每组不包含数值差为1的数 解:正整数可直接分为两组 奇数 偶数 符合题意, 所以给定数列有相邻就是2否则就是1 B1 / B2: 给定一每个点出度为1的图问每个点走到自己需要多少步 明显走到自己是个环, 并且环上答案都一样,递归求解即可 #include <bits/stdc+
阅读全文
摘要:A题意:使得全部数初二上取整或下取整加和后 用python取整输出就行 import math n = int(input()) cnt = 0 while n : x = int(input()) if x & 1: if cnt & 1: print( math.floor(x / 2) ) e
阅读全文
摘要:题意: 给定一张图 联通或不联通, 求最大的路径长度 使得路径边号递增且权值递增 其实就是 线段树/树状数组 求最长上升子序列且限制转移条件为边两点时才能转移 考虑建1e5棵线段树/树状数组进行维护 下标是权值 值是以下标为结尾的lis 必然爆炸,所以用主席树动态开点维护查询即可 代码瞎搞一下就行
阅读全文
摘要:这个挖矿游戏会给出一个n*m个格子的地图,每个格子都有黄金。在游戏开始时小明会随机出现在地图的某一个格子当中。小明可以将他所在的格子的黄金收归囊中,并且还可以向下或者向右移动,然后继续收集黄金。地图上某些格子是障碍物,小明不能移动到有障碍物的格子上。不过,在游戏开始时,小明可以随意地在地图上放置传送
阅读全文
摘要:A 超越学姐爱字符串 A: 超越学姐非常喜欢自己的名字,以至于英文字母她只喜欢“c”和“y”。因此超越学姐喜欢只含有“c”和“y”的字符串,且字符串中不能出现两个连续的“c”。请你求出有多少种长度为n的字符串是超越学姐喜欢的字符串。答案对1e9+7取模。 解题思路:设dp[MAXN][2] 代表第i
阅读全文
摘要:https://www.luogu.org/blog/codesonic/Mosalgorithm 讲的比较全面 针对例题写 将询问排序 bool cmp(node a,node b){ return pos[a.l]^pos[b.l]?pos[a.l]<pos[b.l]:pos[a.l]&1?a.
阅读全文
摘要:求树上简单路径长度为2019倍数的路径条数 解题思路 : 二维状态dp[i][j]代表i节点的子树上所有点到i的距离为j的个数 考虑两点u, v,两点间的贡献为 ans += dp[u][i] * dp[v][(2019 - i - v + 2019) % 2019]; i = 0 - 2018 此
阅读全文
摘要:解题思路:二分check 代码比较长 所以拿来练习一下py 语法总结: 新建空list arr = [] 定义函数 def (参数1, 参数2, 参数3): return 任意类型列表 python 默认向负无穷取整 整除 // 即为 C++ 的floor 输入一个列表 arr = [int(len
阅读全文
摘要:要求第n项时,直接linear_seq::(gao,n)即可, 不放第0项的话,就是linear_seq::(gao,n-1) #include<bits/stdc++.h> using namespace std; typedef long long ll; const ll mod=1e9+7;
阅读全文
摘要:1.必须逆时针给出多边形顶点 2.面积并 = 面积和 - 面积交 #include <bits/stdc++.h> using namespace std; const int maxn = 300; const double eps = 1e-8; int dcmp(double x){ //精度
阅读全文
摘要:给一合法括号序列,交换xy位置的括号问交换后是否合法 解题思路:左扩1右扩-1做前缀和数组 当且仅到pre[i] >= 0 && pre[n] == 0时合法 考虑交换, 若s[x] == s[y]交换无意义 当前为'('后为')'则xy区间内差分值均要减二 所以区间极小值小于2则非法 当前为')'
阅读全文
摘要:解题思路: 两棵bit分别存线段的开始点和结束点 两个数组存开始点和结束点的线段数量 针对每次询问 用总线段数 - 区间右边的线段(结尾小于等于x) - 区间左边的线段(开头大于等于x) - 当前线段内被完全包含 - 开头结尾在当前区间内即为答案 在线更新询问 复杂度Onlogn /* Zeolim
阅读全文
摘要:求区间x,y内的h-index(最大的h有h篇论文引用量不小于h) 解题思路: 在树上x,y区间内二分答案check #include <bits/stdc++.h> typedef long long ll; using namespace std; const int MAXN = 2e5 +
阅读全文
摘要:解题思路:结合图式求min(C(n, m), 1e18) 如果m > n / 2 则有 m = n - m 计算可得当m大于40的时候C必然大于1e18 所有只用大数暴力求解m较小部分的情况,或者用C++int128边算边约分 ps: py的整数除运算要用// 不然会变为浮点数 mx = 10000
阅读全文

浙公网安备 33010602011771号