【CodeForces 776D The Door Problem【并查集】】教程文章相关的互联网学习教程文章

【Codeforces Global Round 14】-C. Phoenix and Towers-堆模拟【代码】【图】

题目: 思路: 这个题很像之前做过一个向篮子里面丢方块看最少能丢几层的题 我们分析样例模拟入塔过程 每次放进去一个块都想让所有塔的极差在一定范围内 所以我们建一个堆存放所有的塔高 走h数组 每次把当前方块丢到最低的塔中来稳固极差并记录当前丢到了哪个塔里面 如果丢进去极差>k,就NO 否则走完后按顺序输出每个方块丢到了哪个塔 代码: #include <algorithm> #include <cmath> #include <cstdio> #include <cstdlib> #inclu...

Codeforces 571E - Geometric Progressions(数论+阿巴细节题)【代码】

Codeforces 题目传送门 & 洛谷题目传送门 u1s1 感觉此题思维难度不太大,不过大概是细节多得到了精神污染的地步所以才放到 D1E 的罢((( 首先我们对所有 \(a_i,b_i\) 分解质因数并将它们全部质因子拎出来编个号 \(1,2,3,\cdots,m\)——这样的质因子个数肯定不会超过 \(2n\omega(a_i)\)。我们记 \(ap_{i,j}\) 表示 \(a_i\) 中标号为 \(j\) 的质因子出现的次数,\(bp_{i,j}\) 表示 \(b_i\) 中标号为 \(j\) 的质因子出现的次数,那么...

Codeforces Round #715 (Div. 2)【代码】

A. Average Height 题意:设定两个相邻的整数相加之和能被2整除的数为“上镜”,求最多连续的“上镜”数。 思路:把奇和偶分开输出即可,相邻的奇数或者偶数一定是上镜。 #include <bits/stdc++.h> #define llt long long using namespace std;bool cmp(int p,int q) {return p%2<q%2; } int te,n,a[2010];int main() {cin.tie(0);ios::sync_with_stdio(false);cin>>te;while(te--){cin>>n;for(int i=1;i<=n;i++)cin>>a[i];sort(a+...

Codeforces 835C-Star sky【代码】

题目链接:http://codeforces.com/problemset/problem/835/C题意:天上有很多星星,每个星星有他自己的坐标和初始亮度,然后每个星星的亮度在一秒内会加一如果大于最大亮度C就会变为0,然后观察星星,给出视野范围(矩形)的左下角和右上角,以及观察的时间,问视野中星星亮度总和是多少。思路:当时做的时候一看这不是二维树状数组吗?但我没有考虑完,直接求的星星的初始亮度的前缀总和,显然这是错误的。正确的做法是开个三维的...

CodeForces 1355E :Restorer Distance 三分【代码】

传送门 题目描述 你要修理一堵墙,这堵墙由 NNN 个宽度为一的砖块构成,其中第 iii 块砖的高度为 hih_{i}hi? 。 你需要执行下列操作让这 NNN块砖的高度变得全部相等。 1、使一块砖的高度加一,这需要花费 AAA 的代价。2、使一块高度为正的砖的高度减一,这需要花费 RRR 的代价。3、使一块高度为正的砖的高度减一,另一块砖的高度加一,这需要花费 MMM 的代价。 给定 NNN,AAA,RRR,MMM ,你需要求出使所有砖的高度变得相同的最小代价...

Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) B. Journey Planning(映射)【代码】

题意:已知 n 所城市(从 1 至 n 编号)及其美丽值,选取一条旅行路线,满足路线中两两城市美丽值之差等于编号之差,求所有旅行路线中美丽值的最大值。思路:美丽值与编号作差,差值为键,映射累加 。 #include <bits/stdc++.h> usingnamespace std; int main() {int n;cin>>n;int b[n];for(int &i:b) cin>>i;map<int,longlong> _map;for(int i=0;i<n;i++)_map[b[i]-i]+=b[i];longlong mx=0;for(auto &i:_map)mx=max(mx,i.second);...

codeforces #603 div2 ABCD【代码】【图】

A. Sweet ProblemDescription Solution瞎搞的规律 B. PIN CodesDescription给出n个4位数字密码,每次操作可以改变一个密码中的一位数字。求最少的操作次数使得n个密码不同。Solutionhash一下序列乱搞,代码里的while应该可以去掉,扫一遍就行。 1 #include <algorithm>2 #include <cctype>3 #include <cmath>4 #include <cstdio>5 #include <cstdlib>6 #include <cstring>7 #include <iostream>8 #include <map>9 #include <n...

Codeforces Round #551 (Div. 2) D 树形dp【代码】

https://codeforces.com/contest/1153/problem/D题意一颗有n个点的数,每个点a[i]为0代表取子节点的最小,1代表取最大,然后假设树上存在k个叶子,问你如何将1~k分配给叶子节点使得根节点最大题解实际上最后只有一个值能到达根,我们需要计算没用的叶子节点数量min:相当于将子节点叶子数量相加max:相当于将子节点叶子数量取最小ans=叶子数-sz[1]+1代码#include<bits/stdc++.h> #define MAXN 300005 using namespace std; vector<int>G[M...

Codeforces #447 Div2 D【代码】

#447 Div2 D题意给一棵完全二叉树,每条边有权值为两点间的距离,每次询问 \(x, h\) ,从结点 \(x\) 出发到某一结点的最短路的距离 \(d\) 如果小于 \(h\) ,则答案加上 \(h - d\) ,考虑所有结点并输出答案。分析通过建树过程可以发现这是一棵完全二叉树,也就是说树很矮。 可以预处理这棵树,对于每一个结点,我们可以计算出以这个结点为根结点的子树中的所有结点到当前子树的根结点的距离,从根结点向下 DFS 即可,然后自下而上合...

Codeforces915G. Coprime Arrays【代码】

n<=2e6的数组,m<=2e6个询问,对1<=i<=m的每个i问:只用<=i的数字填进数组,有多少种方案使数组的总gcd=1.强制把每个询问的答案求出来。比如说现在有个确定的i=t,然后看看答案怎么算先。先把所有情况加起来,然后除去gcd=2,3,4,5,……的,那直接统计有多少gcd=2,3,4,5的不方便,总可以统计有多少gcd是2的倍数的,3的倍数的,……,吧!这样的话丢掉了gcd为2的倍数,3的倍数的,等等6的倍数丢多了一次因为在2和3都算了,要减...

Codeforces 327E Axis Walking (状压dp lowbit优化)

E. Axis Walkingtime limit per test:3 seconds memory limit per test:512 megabytesIahub wants to meet his girlfriend Iahubina. They both live in Ox axis (the horizontal axis). Iahub lives at point 0 and Iahubina at point d. Iahub has n positive integers a1, a2, ..., an. The sum of those numbers is d. Suppose p1, p2, ..., pn is a permutation of {1,?2,?...,?n}. Then, let b1?=?ap1, b2?=?ap2 and so on...

Educational Codeforces Round 87 (Rated for Div. 2)【ABC1C2D】(题解)【代码】【图】

涵盖知识点:解析几何、树状数组比赛链接:传送门A - Alarm Clock题意: 一天要睡够\(a\)分钟,但是\(b\)分钟后有一个闹钟会使其醒来,他会把闹钟推迟到\(c\)分钟之后,然后花费\(d\)小时再次入睡。问要多久能够睡够。 题解: 模拟推公式 Accept Code:#include <bits/stdc++.h> using namespace std; typedef long long ll; int main(){int t;cin>>t;while(t--){ll a,b,c,d;cin>>a>>b>>c>>d;if(b>=a){cout<<b<<"\n";continue;}if(...

Codeforces Round #238 (Div. 1) 解题报告【代码】【图】

Problem A Unusual Product思路:奇数次操作去反即可。代码如下: 1/**************************************************2 * Author : xiaohao Z3 * Blog : http://www.cnblogs.com/shu-xiaohao/ 4 * Last modified : 2014-03-22 23:235 * Filename : Codeforce_238_1_A.cpp6 * Description : 7 * ************************************************/ 8 9 #include <iostream> 10 #include <cstdio> 11 #include...

[CodeForces-869C]The Intriguing Obsession【代码】

题目大意:   有三种颜色的点,a个红色,b个蓝色,c个紫色。   现在你要连边,保证相同颜色的点之间距离>=3,问有多少种合法的连边方案。(不一定连通) 思路:   当加上去的边不满足条件时,无非是以下两种情况:     1.同色点距离=1,同色边直接相连。     2.同色点距离=2,某个点直接连向两个不同的同色点。   我们可以将这个问题分为三个部分:     1.a个红点和b个蓝点之间的连边方案。   ...

Codeforces 962D - Merge Equals【代码】

链接:http://codeforces.com/problemset/problem/962/D 题意:给出一个整数序列。选择其中最小且出现两次(或以上)的数,把最左边的两个从序列中移除,然后把它们的和放到它们的后面第一位。不断重复上述过程,直到序列中的每个数都是唯一的。输出最后的序列。 分析:如果在数a的前面有一个可以跟a合并的数b,则b一定是唯一的。否则,b要先跟其他等值的数合并。这样,我们只需要从左到右依次加入每个数,不断维护当前序列的唯一性...