codeforces
一只谜谜怪
怀着永远进步的心,追逐希望与梦想
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Codeforces Round #663 (Div. 2) C. Cyclic Permutations(思维)
题目链接:传送门思路:可以先算无环的情况数,再用全部情况数减,算无环情况的关键点有两个:1)除了最大数n以外,每个数一定至少有一条边指向另一个数,当每个数只有一条边连出去时(共n-1条边),图是无环的,即只要有一个数连两条边出去就有环。2)对于特定的数i (i < n - 1 ),要保证无环,它两边的数已经被确定了,一边必须是(1) — (i - 1) , 一边是 (i+1) — (n),即只要对于前n-1个数,满足一边都是小于它的数,一边全大于,即可保证无环,其他情况均有环(因为会发出两条边原创 2020-08-10 08:42:31 · 925 阅读 · 0 评论 -
Codeforces Round #662 (Div. 2) B. Applejack and Storages
题目链接:传送门感想:好久不打cf,一打直接被教育,本来想的是用两个整数变量来模拟,但是似乎删除数字时不好处理,然后就凉了。思路:用set来存储所有出现次数大于4的数,变量f2存储所有大于等于2小于4的数(即2和3),然后随着每次操作维护即可。这样似乎比较笨,但是比较好想。代码:#include <bits/stdc++.h>using namespace std;const int maxn = 1e5 + 5;int a[maxn];map <int , int&原创 2020-08-08 10:52:49 · 242 阅读 · 0 评论 -
Codeforces Round #581 (Div. 2) C. Anna, Svyatoslav and Maps (floyd)
题目链接:https://codeforces.com/contest/1204/problem/C思路:先用floyd求出任意两点间最短路,然后逐一对每个点进行判断,设上一个必须出现在子序列中的点为cnt,若满足g[ cnt ] [ p[i+1] ] < g[ cnt ] [ p[i] ] + g[ p [ i ] ] [ p [ i + 1 ] ] , 则这个点必须出现,cnt...原创 2019-08-21 18:06:58 · 327 阅读 · 7 评论 -
Codeforces Round #571 (Div. 2) D. Vus the Cossack and Numbers(贪心)
题目链接:https://codeforces.com/contest/1186/problem/D思路:正的全向下取整,负的全向上取整,然后如果值不相等在根据情况把负数变大或者吧正数变小即可。代码:#include <bits/stdc++.h>using namespace std;const int maxn = 1e5 + 5;int a[maxn];vec...原创 2019-08-21 17:58:41 · 143 阅读 · 0 评论 -
Codeforces Round #571 (Div. 2) Vus the Cossack and Strings
题目链接:https://codeforces.com/contest/1186/problem/C思路:两个长度一样的零一串在1的个数同奇或同偶时不同的位数才会是偶数。代码:#include <bits/stdc++.h>using namespace std;const int maxn = 1e6 + 5;int pre[maxn]; int main()...原创 2019-08-21 17:54:56 · 155 阅读 · 0 评论 -
Codeforces Round #578 (Div. 2) C. Round Corridor (gcd)
题目链接:https://codeforces.com/contest/1200/problem/C反思:掉分的时候一直在想12点方向一直存在的隔板的用处,然后就扑街了。还有就是B题做了好久,导致C题做的时候很慌,其实可以多花几个图思路:设当前外圈选第x个区间,内圈选y个区间,外圈每份是1/m的圆周,内圈是1/n的圆周,所以当x/m = y/n时,存在双重隔板,联通就阻断了,所以联通的块数量...原创 2019-08-12 13:42:02 · 165 阅读 · 0 评论 -
Codeforces Round #579 (Div. 3) D1. Remove the Substring (easy version)(暴力)
题目链接:https://codeforces.com/contest/1203/problem/D1思路:因为需要删除的是一个连续的子段,所以直接枚举所有可能子段,删完判断t是不是s的子串。代码:#include <bits/stdc++.h>using namespace std;int main() { string s,t; ios::sync_with_st...原创 2019-08-16 09:30:49 · 280 阅读 · 0 评论 -
ccf 认证 201503-4网络延时
题目:问题描述 给定一个公司的网络,由n台交换机和m台终端电脑组成,交换机与交换机、交换机与电脑之间使用网络连接。交换机按层级设置,编号为1的交换机为根交换机,层级为1。其他的交换机都连接到一台比自己上一层的交换机上,其层级为对应交换机的层级加1。所有的终端电脑都直接连接到交换机上。 当信息在电脑、交换机之间传递时,每一步只能通过自己传递到自己所连接的另一台电脑或交换机。请问,电脑与电脑...原创 2019-08-25 16:01:33 · 320 阅读 · 0 评论 -
Educational Codeforces Round 71 (Rated for Div. 2) D. Number Of Permutations (容斥原理,组合数学)
题目链接:https://codeforces.com/contest/1207/problem/D思路:题目求的是保证两组数对是部分或全部递减序列,写就是说就是所有可能n! - 第一个数对不是递减序列的情况 - 第二个数对不是递减的情况 + 一二数对都不是递减的情况,(因为前两种情况算重复了)。代码:#include <bits/stdc++.h>using namespa...原创 2019-08-25 15:00:54 · 151 阅读 · 0 评论 -
Educational Codeforces Round 71 (Rated for Div. 2) C. Gas Pipeline (dp)
题目链接: https://codeforces.com/contest/1207/problem/C思路:令dp[i][0]为i位置高度为1所能取的最小值,dp[i][1]为i位置高度为2所能取的最小值,然后如果高度有变化需要加a,知道这些就可以写出状态转移方程。还有贪心的思路:题目中可以变化的区域只有0区域,这个区域要么全取1,要么全取2,部分取1部分取2是没有用的,因为它已经加入了2*a...原创 2019-08-24 18:56:21 · 379 阅读 · 0 评论 -
Codeforces Round #580 (Div. 2) C. Almost Equal (找规律)
题目链接:https://codeforces.com/contest/1206/problem/C反思:比赛时一直想画图找到规律。(明明就不会找规律) , 本着做出题才是第一位的想法就应该打表的。找规律代码:可以用STL或者dfs生成全排列,这里使用的dfs:参数t是环的长度:2*n , 不过也只是能跑出n = 5 时的情况:1 4 5 8 9 2 3 6 7 10和题目中n = 3的情...原创 2019-08-19 17:31:15 · 248 阅读 · 0 评论 -
Codeforces Round #577 (Div. 2) C. Maximum Median (数学)
题目:You are given an array a of n integers, where n is odd. You can make the following operation with it:Choose one of the elements of the array (for example ai) and increase it by 1 (that is, replac...原创 2019-08-07 00:20:37 · 143 阅读 · 0 评论 -
Codeforces Round #577 (Div. 2) B.Zero Array
题目:You are given an array a1,a2,…,an.In one operation you can choose two elements ai and aj (i≠j) and decrease each of them by one.You need to check whether it is possible to make all the elements ...原创 2019-08-06 14:01:11 · 174 阅读 · 0 评论 -
Educational Codeforces Round 67 (Rated for Div. 2)C. Vasya And Array
题目:Vasya has an array a1,a2,…,an.You don’t know this array, but he told you m facts about this array. The i-th fact is a triple of numbers ti, li and ri (0≤ti≤1,1≤li<ri≤n) and it means:if ti=1 t...原创 2019-08-05 22:12:48 · 230 阅读 · 0 评论 -
Codeforces Round #579 (Div. 3) E. Boxers (贪心)
题目链接:https://codeforces.com/contest/1203/problem/E思路:一开始想的是记录数字出现次数,看每个数字的三种变化能否产生新数,但是这样容易多算或者少算答案。 可以使用贪心的思想,将数组以非增排序,然后从最大的数开始取三种变化,设置一个数组当前最大值,如果最大值比新数大,就更新最大值,并让答案加1代码:#include <bits/stdc...原创 2019-08-17 07:11:01 · 256 阅读 · 0 评论 -
Codeforces Round #579 (Div. 3) D2. Remove the Substring (hard version) (贪心)
题目链接:https://codeforces.com/contest/1203/problem/D2思路:先用一个子串t中的字符在主串s中的最靠右位置pos[i],根据这个最靠有位置,遍历一遍s字符串,每次最大删除长度就是当前位置到pos[i](因为尽可能靠右,所以是尽可能大的)的距离。代码:#include <bits/stdc++.h>using namespace s...原创 2019-08-18 02:02:39 · 215 阅读 · 0 评论 -
Educational Codeforces Round 74 (Rated for Div. 2) C. Standard Free2play(思维)
题目链接:https://codeforces.com/contest/1238/problem/C反思:比赛的时候已经想到做法了,但是没时间了,主要是读题读半小时。。题目大意:给出n个现形的块p1 - pn,人在高度为h的p1块上,而其实从1 - h高度的块都是存在的,只是有的隐藏了(人没法站在上面),只有n个给出的块是露出的,只有一个操作可以使人物下降到更低的块,这个操作会改变当前高度为h...原创 2019-10-09 20:33:36 · 315 阅读 · 0 评论 -
Codeforces Round #591 (Div. 2, based on Technocup 2020 Elimination Round 1) C. Save the Nature(二分)
题目链接:https://codeforces.com/contest/1241/problem/C思路:题目的答案具有单调性,(如果3是答案的话,小于3的数都不是答案),所以可以二分,直接二分位置即可,因为要满足res >= k 的最小答案,所以位置一定是%a,或者%b ,或者%(a + b)为 0的位置,然后对每个位置采用贪心的思路,让最大的数字*最大的倍率。代码:#include...原创 2019-10-08 10:21:53 · 144 阅读 · 0 评论 -
Codeforces Round #590 (Div. 3) C. Pipes (线性dp)
题目链接:https://codeforces.com/contest/1234/problem/C思路:这个题似乎还有不dp的办法,这次先把dp的方法放在这里,因为只有两行,所以水不能往左走,不然水管会交叉。用dp[i][j][0] , dp[i][j][1] , dp[i][j][2]表示水能否从i行j列的从左、从上、从下流入,即可写出状态转移方程。代码:#include <bit...原创 2019-10-02 20:23:17 · 229 阅读 · 0 评论 -
Codeforces Round #589 (Div. 2) C. Primes and Multiplication (数学)
题目链接:https://codeforces.com/contest/1228/problem/C反思:做这个题的时候没想出思路,补题的时候还把质因数分解那里打错了,找了好久错。思路:先对x进行质因数分解,对于每个质数,从f(1,p) …f(n,p),先算出能整除p的数字个数,这里肯定还包含能被p^k(k >= 2)整除的,他们的p肯定是要算在答案里的,所以先除掉是可以的,令n = n...原创 2019-09-30 21:30:35 · 172 阅读 · 0 评论 -
Codeforces Round #584 - Dasha Code Championship - Elimination Round C. Paint the Digits
题目链接:https://codeforces.com/contest/1209/problem/C思路:先在字符串中选出一个满足最大数字小于等于未选中数字的非递减子序列(我当时用的单调栈。。),然后判断另一个序列是不是非递减即可。代码:#include <bits/stdc++.h>using namespace std;const int maxn = 2e5 + 5...原创 2019-09-15 11:04:47 · 169 阅读 · 0 评论 -
Educational Codeforces Round 72 (Rated for Div. 2) C. The Number Of Good Substrings
题目链接:https://codeforces.com/contest/1217/problem/C思路:从题中可以看出,选定一个为‘1’的数字作为起点,当数字段长度超过2,数字段的值一定大于长度,此时需要看‘1’旁边出现了几个‘0’,这些’0’可以在数字段的值不变的情况下增长长度。所以对于每一个‘1’,遍历一遍它有可能符合题意的情况,当数字段的值大于它的最大延长长度时停止。对与每个’1’最多...原创 2019-09-08 12:35:47 · 198 阅读 · 0 评论 -
Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) D. Treasure Island(dfs)
题目:https://codeforces.com/contest/1214/problem/D思路:首先判断出最多填两个格子(把(1,1)向下的向右的格子都堵上),最少不用填(原图走不通的情况),所以题目转换为是否有一个格子被一切(1,1)到(n,m)的路径经过,而题目dfs做法的关键点在于由于在一个格子只能向下或者向右移动,所以从(1,1)移动到(x,y)的步数是固定的,所以花费几步能走到的...原创 2019-09-07 16:19:19 · 235 阅读 · 0 评论 -
Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises) C. Bad Sequence (栈:括号匹配)
题目链接:https://codeforces.com/contest/1214/problem/C思路:其实就是数据结构里栈的括号匹配应用稍微改一下,如果最后栈非空,那么判断一下是否只剩一个’(’ 和‘)’,则输出"Yes",或者栈为空,输出“Yes”,否则输出“No”。代码:#include <bits/stdc++.h>using namespace std;sta...原创 2019-09-04 21:18:39 · 201 阅读 · 0 评论 -
Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) D. Restore Permutation (树状数组)
题目链接:https://codeforces.com/contest/1208/problem/D思路:倒着到处理给出的序列s[i],对于每个s[i],假设当前位置填的数是t + 1,那么在它前面有1----t 比它小,且1----t == s[i] ,所以模拟这个过程即可:对每个位置i,算出最小的t个数的和等于s[i] ,i位置应该填的数就是t + 1,可以用树状数组模拟这个过程。代码:...原创 2019-09-04 21:13:43 · 319 阅读 · 0 评论 -
Codeforces Round #582 (Div. 3) D2. Equalizing by Division (hard version) (暴力)
题目链接:https://codeforces.com/contest/1213/problem/D2思路:和D1其实差不多,不一样的就是先要预处理每个数变成其他数需要的步数,假设最大值是m,一共最多有有mlogm个数,然后直接从枚举到0 — 2e5看得到相同k个数最少需要几步即可。本来担心是否超时,但是实际上不会,因为在最后的循环里因为f数组里总共最多mlogm个数,加上外层m次循环,最多执行...原创 2019-08-31 17:27:20 · 180 阅读 · 0 评论 -
Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) B. Uniqueness (n*n*logn算法)
题目链接:https://codeforces.com/contest/1208/problem/B思路:题目最终达到效果是剩下的数相互不重复,假设整个序列有k个数多余,于是选一段连续的区间,这段区间如果包含了这k个数就行了。代码:#include <bits/stdc++.h>using namespace std;const int maxn = 2005;int...原创 2019-08-26 10:43:02 · 235 阅读 · 0 评论 -
Codeforces Round #580 (Div. 2 ) D. Shortest Cycle (floyd)
题目链接:codeforces.com/contest/1206/problem/D思路:n最大是1e5,但是实际上如果有3个数都两两相与不为0则答案就为3了,于是只有不为0的a[i]的数量很小时才需要判断,数量较大时直接是3了,所以可以用floyd求最小环,还有就是可以提前把a[i] = 0 的点去除,我没有去除,所以代码有点复杂。代码:#include <bits/stdc++.h...原创 2019-08-22 22:26:34 · 150 阅读 · 0 评论 -
打codeforces时出现的沙雕错误
Codeforces Round #554 (Div. 2) B. Neko Performs Cat Furrier Transform思路:题中数据范围最大不超过1e6,化为二进制长度不超过20位,所以可以每次把最靠近最高位的0变成1,直接模拟即可错误点:我的代码中模拟过程使用for循环时,只有奇数操作需要i++,偶数不需要,直到最后都没发现,实现掉分更正后代码#include <...原创 2019-04-25 15:43:16 · 538 阅读 · 0 评论 -
Codeforces Round #554 (Div. 2) C. Neko does Maths
题目链接:https://codeforces.com/contest/1152/problem/C思路:题目中要求最小正整数k是的lcm(a+k,b+k)最小,而lcm(a,b)gcd(a,b)==ab,即lcm(a,b)==a*b/gcd(a,b),即题目转换为求gcd(a+k,b+k)使lcm最大,gcd(a+k,b+k)=gcd(a+k,b-a)(因为gcd(x,y)=gcd(x,y-...原创 2019-04-25 22:52:31 · 166 阅读 · 0 评论 -
Codeforces Round #517 (Div. 2) B. Curiosity Has No Lim
题目链接:http://codeforces.com/contest/1072/problem/B思路:ti和ti+1只要确定一个,另一个就是确定的,最后一个数只有4种情况,从后往前推就可以推出答案。c++代码:#include &amp;amp;lt;iostream&amp;amp;gt;#include &amp;amp;lt;cstring&amp;amp;gt;using namespace std;c原创 2018-10-22 13:08:38 · 170 阅读 · 0 评论 -
Educational Codeforces Round 51 (Rated for Div. 2) C. Vasya and Multisets
题目大意:给出一个多重集(集合里可以包含多个相同的数),并定义在集合中只出现一次的数为nice number,要求把这个多重集分成两个多重集A,B,并且这两个集合中的nice number要相同,题目链接:http://codeforces.com/contest/1051/problem/C思路:分三种情况:情况一:如果多重集中的nice number(只出现一次的数)为偶数,则对半分给两个...原创 2018-10-04 23:48:49 · 258 阅读 · 0 评论 -
Educational Codeforces Round 51 (Rated for Div. 2 B. Relatively Prime Pairs
题目大意:给出一个区间[l,r],保证r-l(r>l)是奇数,要求成对输出区间内的数,并确保这对数互素题目链接:http://codeforces.com/contest/1051/problem/Bc++代码:#include <iostream>using namespace std;typedef long long LL;int main() { LL...原创 2018-10-03 10:30:11 · 169 阅读 · 0 评论 -
Educational Codeforces Round 51 (Rated for Div. 2) A. Vasya And Password(模拟)
题目大意:给出n个字符串,字符串要满足有大写字母,小写字母,数字才能构成密码,要求以最小改动把字符串变为密码字符串题目链接:http://codeforces.com/contest/1051/problem/A思路:模拟c++代码:#include <iostream>#include <vector>using namespace std;const ...原创 2018-10-01 23:59:41 · 180 阅读 · 0 评论 -
Codeforces Round #510 (Div. 2) B. Vitamins
题目描述:(简化)给出n种果汁,每种果汁可能包含A,B,C三种维生素,每种果汁都有加个,问想要包含三种种维生素的最小花费。题目链接:http://codeforces.com/contest/1042/problem/B思路:以为只要包含三种维生素即可,所以可以暴力,具体见代码。c++代码:#include &lt;iostream&gt;#include &lt;vector&gt;...原创 2018-10-01 22:25:04 · 196 阅读 · 0 评论 -
Codeforces Round #510 (Div. 2) A. Benches
题目描述:给出n个a[i],表示目前每个长椅上坐着的人数,又给出m个人,要安排他们坐在n个长椅上,记录坐着人最多的长椅上的人数k,求最大的k和最小的k题目链接:http://codeforces.com/contest/1042/problem/A思路:先选出最大的a[i]—maxa,最大k很好求,就是maxa+m,而最小k呢?用maxa去减每一个数求和出suma,如果m&lt;suma,最小...原创 2018-10-01 22:17:09 · 234 阅读 · 0 评论 -
Codeforces Round #509 (Div. 2) D. Glider(前缀和)
题目描述:(简化)给出飞行员高度h,和n个上升气流区间,飞行员可从任意位置x跳下,求飞行员最大的滑行距离题目链接:http://codeforces.com/contest/1041/problem/D思路:为区间的长度存一个前缀和数组a[],为没有气流的空白区间存前缀和数组b[],因为给出的区间已经排过序,所有可有前一个区间的y和本区间的x做差求出空白区间,选从第i各区间开始时,用lowe...原创 2018-10-01 01:06:49 · 237 阅读 · 0 评论 -
codeforces 1029 B - Creating the Contest
题目描述:http://codeforces.com/contest/1029/problem/B 这个题因为给出的序列排过序列,所以答案是连续的 c++代码:#include&lt;stdio.h&gt;#include&lt;stdlib.h&gt;#include &lt;iostream&gt;#include &lt;vector&gt;usin原创 2018-08-25 11:13:58 · 309 阅读 · 0 评论 -
codeforces 1029 A. Many Equal Substrings(字符串)
题目描述:http://codeforces.com/contest/1029/problem/Ac++ 代码:#include <iostream>using namespace std;int main() { int n,k; cin >> n >> k; string t; cin >> t; i...原创 2018-08-25 11:10:22 · 374 阅读 · 0 评论 -
codeforces 1027 B - Numbers on the Chessboard(打表找规律)
题目描述:http://codeforces.com/contest/1027/myc++ 代码:#include <iostream>using namespace std;typedef unsigned long long LL;int a[1000][1000];int main() { LL n,q; cin >> n >...原创 2018-08-23 14:45:31 · 269 阅读 · 0 评论
分享