codeforces
WayJasy
叁肆伍叁,伍肆伍物
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
codeforces 1148C - Crazy Diamond(思维+暴力模拟)
传送门 题意: 给定nnn个数,表示nnn的某个排列。现在你可以交换两个坐标差值大于等于n/2n/2n/2的数,最后使得序列从小到大有序。输出交换次数和交换的坐标。 思路: 设第iii个数所在位置为ididid,要从ididid复原到iii,有五种复原状态: ①id−i①id-i①id−i ②id−1−n−i②id-1-n-i②id−1−n−i ③id−n−1−i③id-n-1-i③id−n−1−...原创 2019-11-15 16:09:10 · 693 阅读 · 0 评论 -
codeforces1252F Regular Forestation(树hash判子树同构)
传送门 题意: 给定一棵树,割掉某个点后树能分成xxx个相同的子树,求最大的xxx. 思路: 答案节点很容易发现就是树的重心。因此只要判断重心的子树是否同构就行了。 我的方法是处理出重心的子节点的hash值,n方暴力判断每个节点的hash值。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const...原创 2019-11-10 22:16:53 · 231 阅读 · 0 评论 -
Codeforces Round #592 (Div. 2) D. Paint the Tree
传送门 题意: 给出一棵树,每一个节点染成某种颜色需要花费 aaa, 每个节点和它直接相连的节点需要染成的颜色互不相同,问染完整棵树的最小花费。 思路: 由于颜色只有3种,画一画图会发现,如果每个节点的度数超过2,那么一定无解。 也就是说给出的树是一条树链。 那么颜色只有3种,一共有6种染色状态,先dfs出树链,然后直接暴力枚举所有状态、 #include<iostream> #inc...原创 2019-10-16 15:29:48 · 253 阅读 · 0 评论 -
Codeforces Round #580 (Div. 2)
传送门 A:瞎搞, B:先记录把每个负数处理成−1-1−1,正数处理成+1+1+1对答案的贡献。然后分类讨论一下−1-1−1出现次数的奇偶性,然后加上0的贡献。 C:简单构造。 由于相邻nnn个数的和的差值绝对值<=1<=1<=1,并且任意一个和差值都<=1<=1<=1,那么先考虑: 由于: {S1=a1+a2+...+anS2=...原创 2019-08-19 10:49:40 · 265 阅读 · 0 评论 -
codeforces 585 div2C
传送门 题意: 给出长度为nnn的两个字符串,构造一个次数最少的交换二元组(x,y)(x,y)(x,y),表示交换s1[x]s1[x]s1[x]和s2[y]s2[y]s2[y],最后使得两个字符串相同 思路: 首先相同的字符就没必要去交换了。考虑上下字符不同的情况。上aaa,下bbb(下文称ab,baab,baab,ba同理) 对于ababab如果有偶数组ababab,我们可以进行numab/2n...原创 2019-09-19 23:12:50 · 189 阅读 · 0 评论 -
codeforces 593div3D 线段树
传送门 题意: 给定一个字符串 修改某个位置的字符 查询区间不同的字符种类数 思路: 对每一种字符建一棵线段树,维护区间该种字符的个数。 然后就是裸的单点更新区间查询。 #include<iostream> #include<algorithm> #include<cstdio> #include<stdio.h> #include<str...原创 2019-10-02 20:19:53 · 125 阅读 · 0 评论
分享