E 给n个点,每个点的关联点位置为i-a[i],i+a[i];要检查位置是否在范围内,关联一次花费为1,找出每个点关联到与他的值的奇偶性相反的点的最小花费。最初思路:第一感觉是dfs,但是要找最小花费,也就是最小路径,仔细观察发现,每个点的关联点是固定的,并且存在无法被关联的点,而且要想奇偶性相反,一定需要通过一个变点,就是改变奇偶性的点,并且一个点要想达成目标,只需要在找的过程中通过一个变点就够
转载
2024-09-14 22:09:30
217阅读
题目链接:https://codeforces.com/problemset/problem/1439/B解题思路:很容易想到和拓扑排序类似的思路,删点判断答案。关键在于如何判断度数为k-1的完全图,这个地方只需要再每次删点之前判断一下就好了//#define LOCAL
#include <bits/stdc++.h>
using namespace std;
#define ll
转载
2024-04-03 08:27:04
453阅读
原比赛链接复盘:ABC签到,手速太慢了。D捣鼓了好久才想起来从更小的值域出发去做。E简单二分答案。然后就time out了。D题搞错方向浪费太久时间了。F思维题,考虑到初值、字符集,然后是$\text{rearranged}$的,情况就很简单。G简单位性质,拐一个弯就能想到了。 题解D.Coprime题意简述给定正整数数组$a$,长度$2e5$,值域$1\le a_i \le 1000$
转载
2024-09-05 19:01:28
105阅读
div3复健现场。
A直接倒推回去即可,左边右边依次向中间扫,依次扫到的就是原序列。Code用时:3minB看最前面能连"2020"的前面多少,最后面能连"2020"的后边多少,如果相加大于4即为答案。Code用时:4minC最优操作为从9到1依次使用。模拟即可。Code用时:3minD答案实际上是求划分成若干段,这些段的和都一一相等,且分段最多。那么他
转载
2024-03-12 16:52:27
109阅读
Problem - A - CodeforcesYou are given nn integers a1,a2,…,an. Find the maximum value of max(al,al+1,…,ar)⋅min(al,al+1,…,ar)over all pairs (l,r)of integers for which 1≤l&l
转载
2024-06-30 10:55:02
60阅读
A、题意:一个士兵要买香蕉,第1个香蕉价格是k,第二个香蕉价格是2k,以此类推,现在士兵有钱n要买w个香蕉,问他需要像朋友借多少钱才能买到香蕉解:ans=max((1+w)*w/2*k-n, 0);1 /*
2 * Problem:
3 * Author: SHJWUDP
4 * Created Time: 2015/6/24 星期三 13:24:16
5 * File N
转载
2024-05-15 12:51:24
217阅读
883D题面题目大意:给你一个长度为n的字符串,上面有牛(“P”),草(“*”)和空地(“.”)。现在你给每一头牛规定一个方向,它会一直往前吃草,直到走到边界。每一份草只会被吃1次,要求输出最多吃多少草,以及在此基础下吃完最后一份草的最小时间。n<=1000000。做法:很明显两头牛就可以吃完所有草,于是暴力处理0,1头牛的情况。然后由于具有单调性,考虑二分答案后贪心(时限3s不虚)。接下来
转载
2024-08-06 20:56:16
116阅读
A - Split it!检查 \(k=0\) 或者长 \(k\) 的前缀和长 \(k\) 的后缀的反串是否相同。注意如果 \(2k=n\) 要特判。复杂度 \(O(n+k)\)。B - Max and Mex模拟一下过程就会发现:要么 \(\max\) 和 \(\operatorname{max}\) 永远不会变,要么就会一直加 \(1\)。所以答案只有可能是 \(n,n+1,n+k\) 中的一
转载
2021-03-11 08:31:03
313阅读
2评论
一、解题思路1.A. Technical Support——1754A题目分析:题目给定了一串字符串,字符串包含了两种字符一个为‘Q’表示问题,另一个字符'A'表示回答问题,题目要求输出是否对于每个问题,都做出了解答,若是输出YES,否则输出NO。注意:对于一个问题可以有多个回答,一个问题可以被延后回答。思路:遍历字符串统计问题和回答是否匹配,若当前字符为‘Q’则统计次数加一,代表需要回答的问题加
鸽了一周的题解……我颓炸了。A考虑一下 \(f(x,y)\) 的意义,就是 \(x\) 具有且 \(y\) 不具有的位,那么 \(f(f(x,y),z)=f(x,y\ \text{or}\ z)\). 也就是只有重排后第一个位置是多少队最终的值有影响。 于是可以维护前后缀 \(\text{or}\) 然后枚举第一个即可。 时间复杂度 \(O(n)\). 代码: 80183835B答案是 YES 当
转载
2024-06-18 14:29:00
176阅读
有n个石头在桌上摆成一排(in a row),有红的绿的蓝的。**算出至少拿走几块石头可以使得任意两个相邻的石头颜色都不同。**如果成排的两个石头之间没有其他石头则认为它们是相邻的。输入第一行输入一个[1,50]的整数n,表示桌上石头的(初始)数量。 下一行输入一个字符串s,表示桌上石头的颜色序列。我们将会把石头从左到右依次编号为1到n。用字符'R','G','B'分别表示红色、绿色、蓝色。输出输
CF#821 Div2A Consecutive Sum题目: 选择\(i\)和\(j\),如果\(j = i+xk(x=R)\),可以交换\(i,j\)。任意选择一段长度为k的相加。思路: 题目等价于在下标\(mod\)实现: 不值一提。void solve()
{
cin >> n >> k;
priority_queue<int> q[1
转载
2024-03-18 16:42:42
143阅读
比赛链接:http://codeforces.com/contest/854A. Fraction解法:按照题意模拟即可。#include <bits/stdc++.h>using namespace std;int main(){ int n; cin >> n; for(int i=n/2; i>=1; i--){ if(__gcd
原创
2022-04-19 10:20:25
32阅读
A题 关注到本题的数据量不大但是数据很大,可以使用暴力+哈希的方法 将关闭的餐厅放到map遍历 #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<map> #
转载
2020-01-20 11:42:00
91阅读
A题 只需要找到A中后面跟的最长的p串是几个即可 #include<iostream> #include<cstring> #include<string> #include<map> #include<vector> #include<cstdio> using namespace std; in
转载
2020-01-12 21:28:00
90阅读
Codeforces 题解
转载
2021-03-10 14:52:00
106阅读
2评论
A题 对于两个分别求解到每一位的时间,看看是否有相等的 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pll; const int N=2e5+10; const in
转载
2021-03-18 10:46:00
91阅读
2评论
A题 先除再计算即可 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pll; typedef pair<int,int> plll; const int N=3e5+1
转载
2020-12-25 22:16:00
110阅读
2评论
A题 枚举每一位,如果是偶数就加上i #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<int,int> pll; const int N=2e5+10; int main(){ ios::
转载
2020-12-24 19:13:00
49阅读
2评论
A题 循环构造bac即可,因为题目是小于等于,我看成了等于所以构造的复杂了点 #include<bits/stdc++.h> using namespace std; const int N=1e5+10; int main(){ ios::sync_with_stdio(false); int t
转载
2021-01-19 10:50:00
70阅读
2评论