A就是模拟一下。 B就是曼哈顿距离。 C就是std::map搞一搞。 D就是容斥一下。 E - Distance Sequence 题意 问满足下列条件的数组\(a\)有多少种: 长度为\(n\) 值域为\([1, m]\) 相邻元素差值的绝对值大于\(k\) 其中\(n \le 1000, m \le 5000, k \le m - 1\)。 思路 \(O(nm)\)的
二模考完了,打场比赛放松身心。 比赛地址:https://atcoder.jp/contests/abc253。 只有 ABCDEF 的题解,G 待补,H 不会。 A 模拟。 Code void mian(){ int a,b,c; scanf("%d%d%d",&a,&b,&c); if(a<=b&&b<=c||c<=b&&b<=a)puts("Yes"); else
5.28 昨天考试了,我们的期末考试。 语文发挥的还行吧,写作文写的特别有感觉,估分 \([110, 125]\)。 数学马子哥一开始说给我抄选择题,于是我没做,到了最后十分钟了,他越挡越严实,我只能被迫自己火速做几个选择,最后选择扣了 \(26\) 分,真tm炸了,公式一个都没背过, 全是考场上推的 /fn 物理不
D - Distinct Trio 本题主要有两种思路: 逆向思维,用不加限制的排列数-不符合条件的; 将题目转化为求\(A_{i}<A_{j}<A_{k}\)的个数。 这篇文章详解了第一种,那我就来说清楚第二种。 原题目为,给定序列 \[\text{}A= (A_1, A_2, ..., A_n) ,求满足 1 \leq i<j<k \leq N 且A_{i}\not =
找出三元组i,j,k(i<j<k,ai,aj,ak互不相等) 等价于找出ai,aj,ak(ai<aj<ak,i,j,k互不相等) #include<bits/stdc++.h> using namespace std; typedef long long LL; const int N = 2e5+10; int sum[N]; unordered_map<int,int> cnt; vector<int> v; int main(
T1——ASCII code 题目大意: 输入一个数字 n,让你输出一个 ASCII码 为 n 的字符。 这是一道前送分题,没有什么好说的。 代码如下: #include <cstdio> int n; int main() { scanf("%d", &n); printf("%c", n); return 0; } T2——Takahashi's Failure 题目大意: 首先有 n
A,B,C跳过。 D - Distinct Trio 题意 求满足\(i < j < k\)且\(a_i,a_j,a_k\)这3个数两两互不相等的\((i, j, k)\)的数量。 \(n \le 2 \times 10^5\)。 思路 正着不好算,逆向思考一下就行。 AC代码 // Problem: D - Distinct Trio // Contest: AtCoder - AtCoder Beginner Contes
思路:循环节枚举最小修改数 #include<vector> #include<iostream> #include<string> using namespace std; int main() { int len,k;cin>>len>>k; string op;cin>>op; vector<int> zm(2010,1e9); for(int T=1;T<=len;T++){
ARC 140 打得很烂。Rank 590,Performance 1696。 D - One to One 每个点都有恰好一个出边,所以这是一个外向基环森林。因此连通块数就等于环的个数,我们只需要求出所有方案中环的个数的总和。直接算比较难办,考虑算每个环对答案的贡献。 首先,假如忽略掉 \(A_i=-1\) 的连通块,剩下的环是
A - Right String 题意 给定一个长度为\(n\)的字符串\(s\),每次可以修改其中一个字符至任意字符,至多使用\(k\)次修改。 记字符串的权重为\(\#\{f(s, i)\}\),\(f(s, i)\)表示将\(s\)循环左移\(i\)次。 其中\(n, k \le 2000\)。 思路 观察可得:答案为字符串的最小整周期。 由于\(n\)
博主绿啦! 博主绿啦! 博主绿啦! 博主绿啦! 博主绿啦! 博主绿啦! --------------------------------------------------------------------------------------- 首先,最最关键的点: 1~1000 就包含在 1~1000000 里了! 所以,找出 W = 1000000 的解,直接输出就行了! W = 1000000,但是只能带
传送门 闲来无事,突然想 vp 一场之前忙的来不及做的 A - Adjacent Squares 这题没想到居然还会卡了一下 给出一个图,给出当前位置,看看有多少个格子相邻 行和列分别判断就好 #include <iostream> using namespace std; int main() { int n, m; cin >> n >> m; int x, y;
目录A - Tax Included PriceB - Village of M PeopleC - Coprime SetD - Hamiltonian Cycle 赛时 1h 才过一题,最后过了三题倒还好。 A - Tax Included Price 给定 \(t,n\),让所有正整数 \(i\) 变为 \(\left\lfloor\frac{100+t}{100} \times i \right \rfloor\) ,问第 \(n\) 个没出
题目大意:给你N个字符串,你可以从中选择任意数量的字符串,请统计在你的字串中,相同字母出现次数正好为K次的字母数。数据保证出现的字母都是小写字母。 1≤N≤15 1 ≤K≤N 一开始读题的时候读错了,读成了至少为k次,就想的暴力选择全部字符串,然后统计字母数,但是在认真读题WA了N发后发现
https://atcoder.jp/contests/abc247/tasks/abc247_c 递归即可解决: #include<iostream> #include<cstdio> #include<algorithm> #include<cstdlib> #include<cstring> #include<string> #include<cmath> #include<map> #include&
目录A - JoggingB - Perfect StringC - Just KD - Index TrioF - Ignore Operations 赛时只切了 4 题,2022 开年来的第一次,输麻了/ll 掉大分 安慰一下自己,常在河边走,哪有不掉分~ A - Jogging 直接按照题目要求的模拟一下,看看谁的得分高就可以。 tnnd 题面一开始错了,WA 了一发,比着题
传送门:F - Keep Connect (atcoder.jp) 题意: 给定长度为N的操作(ti,yi)。 给定初值为0的x,对其进行操作:当t为1时,将x替换为y;当t为2时,将x加上y。 最多可以跳过k步,求最终x的最大值。 思路: 注意到,当t为1时,进行替换操作,那么该位置前面的操作是不会对后面产生任何影响的,也就不会消耗k。
AtCoder Beginner Contest 249 A\(\sim\) D题解 A - Jogging 题目描述:A , B两人在散步,给你他们的速度和散步多少时间后需要休息多久,问到达指定时间后,谁走在前面。 思路:根据题意模拟即可 时间复杂度:\(O(1)\) 参考代码: void solve() { auto cal = [](int a, int b, int c, int x)->
AGC036F - Square Constraints 给定 \(n\) ,问有多少个排列 \(0\sim 2n-1\) 的排列 \(\{p_i\}\) 满足: 对于 \(\forall i\in[0,2n-1]\),有 \(n^2\le i^2+p_i^2\le (2n)^2\)。\(n\le 250\)。 view solution 真神仙题,核心转化: 问题中不合法以及合法的部分都是一段前缀,因此可以想到容
A.Lacked Number 思路: 求出给出的字符串中缺少\(0\sim 9\)中的哪一个字符 std::string s; std::cin >> s; std::vector<int> a(10); for (int i = 0; i < int(s.size()); i ++ ) a[s[i] - '0'] ++; int ans = 0; for (int i = 0; i < 10; i ++ ) if (!a[i
原题链接:E - Max Min (atcoder.jp) 题意: 给定一个数组,求满足最大值为X且最小值为Y的区间个数。 思路:容斥原理 因为必须要包含端点,直接求是不容易的。因此考虑去求不一定包含端点的区间数量,再做容斥。 代码参考: //Jakon:容斥原理 #include <bits/stdc++.h> #define int lo
目录A - Lacked NumberB - SlimesC - Dice SumD - Range Count QueryE - K-colinear LineF - Keep Connect 手速场。手速场。手速场。手速场。手速场。 上大分。上大分。上大分。上大分。上大分。 A - Lacked Number 随便标记看看哪个数没出现过,或者拿 \(45\) 去把所有数减掉剩下
Flags 题意:N 个 flag,第 \(i\) 个在 \(x_i\) 或 \(y_i\) 坐标上,求一种方案,使得每个 flag 之间的最小距离最大。 \(2\le N \le 10^4, 1\le x_i, y_i \le 10^9\) 不妨设 \(a[i] = x_i, a[i+n] = y_i\) ,这样可以方便的取出同组元素。 排序后,为了定位到原位置,需要使用 pair 去存放每个
AGC037 A - Dividing a String 洛谷传送门 AGC037A 分析 考虑每一段长度只可能是一或二,设 \(dp[i]\) 表示以 \(i\) 为结尾的前缀最多可以分成多少段。 如果 \(s[i]\) 和 \(s[i-1]\) 不同,那么 \(dp[i]=dp[i-1]+1\), 否则可以将 \(s[i-2,i-1]\) 分成一段,把 \(s[i]\) 分成一段,那么 \(
目录A - Move RightB - Unique NicknamesC - 1 2 1 3 1 2 1D - CylinderE - Max MinF - CardsG - Dream Team 切了四题就摸去给学妹讲题了(,EFG 都是赛后花 40min 做/口胡 的,实际上也受到了 nyy 提示的影响 A - Move Right 去掉字符串最后一位,在前面加上一个 \(0\) 然后输出即可。 i