首页 > TAG信息列表 > Beginner

AtCoder Beginner Contest 261 E

E - Many Operations 我们发现这个的位运算的顺序是不可以改变的 那我们就不能把后面的结果先算出来做 那怎么办呢 我们考虑数据范围给的是2的30次方 我们考虑拆位 我们可以发现 位数上仅有0/1 两种状态 30位 N是2e5 好像可以dp 我们就由此设置dp[i][j][k]为当前第j位为i(0/1)做前k

AtCoder Beginner Contest 267

E - Erasing Vertices 2 做法1 观察可得:对于某个时刻,贪心删当前代价最小的点肯定是最优的。 但是删一个点会减少相邻接的点的代价。然后就想到了堆,但是这个堆需要支持decrease-key操作。 decrease-key 这个操作std::priority_queue并不支持,但是其实二叉堆也能做到 \(O(\log n)\)。

AtCoder Beginner Contest 266 G,H

G 考虑先放G和B,此时共有\(C_{G+B}^{B}\)种方案。 然后选出\(k\)个G,在前面放上\(R\),共有\(C_{G}^{k}\)种方案。 最后我们放剩下的\(R-K\)个R,考虑目前哪些区间内部可以放一段连续的\(R\)。可以发现,单独G的后面,以及B的前后,RG的前后是可以放的,总共是\(B-k+1\)个区间内可以放\(R\)。那

AtCoder Beginner Contest 266

比赛链接: https://atcoder.jp/contests/abc266 C - Convex Quadrilateral 题意: 平面图上有一个四边形,按照逆时针顺序给定四个点的坐标,判断四边形是不是凸的。 思路: 求两条临边的向量积是不是 > 0 即可。 代码: #include <bits/stdc++.h> using namespace std; int main(){ ios::sy

AtCoder Beginner Contest 265(D-E)

D - Iroha and Haiku (New ABC Edition) 题意: 找一个最少含有三个点的区间,将区间分成三块,三块的和分别为p,q,r,问是否存在这样的区间 题解:先预处理一遍前缀和,和每一个前缀和出现的位置,然后从前往后遍历,每次遍历当前位置的前缀和,如果当前位置的前缀和>=(p+q+r),那么就有可能存在符

AtCoder Beginner Contest 266 A-D

AtCoder Beginner Contest 266 https://atcoder.jp/contests/abc266 EF 待补 A - Middle Letter 输出字符串最中间的那个字母 #include <bits/stdc++.h> using namespace std; int main () { string s; cin >> s; cout << s[(s.size()+1)/2-1]; } B - Modul

AtCoder Beginner Contest 265

AtCoder Beginner Contest 265 https://atcoder.jp/contests/abc265 A - Apple 有两种购买策略:\(x\) 元买一个苹果 or \(y\) 元买三个苹果,问买 \(n\) 个苹果最少要花多少钱 #include <bits/stdc++.h> using namespace std; int main () { int x, y, n; cin >> x >> y >

C++Beginner(3)-Compile

compiling source code file(.cpp,.cxx,.cc,.C,.c++) -> object files(.o,.obj) -> link object files together into an executable (app.exe, app), static library(.lib, .a), or dynamic library(.dll, .so) If any of the source code files changed, we recompile

C++ beginner(2)- variable

initialization int x{}; // x is filled with zeroes, so x == 0 int x{123}; int x(123); int a, b = 123, c{}, d{456}, e(789); int* x, y, z; == int* x; int y; int z; int *x, y, *z Reference C++ has two kinds of references: “lvalue” and “rvalue.” Just like wi

AtCoder Beginner Contest 258

A - When? 问21:00后的第k分钟的时间 #include<bits/stdc++.h> using namespace std; const int N = 2e5+5; int n , a[N] , cnt , k; int32_t main(){ int n , h = 21 , m = 0; cin >> n; m += n; h += m / 60 ; m %= 60; printf("%02d:%02d\n" , h ,

AtCoder Beginner Contest 264

比赛链接 AtCoder Beginner Contest 264 E.Blackout 2 给出很多点(\(n+m\leq 2\times 10^5\)),有发电站和城市,以及很多边(\(e\leq 5\times 10^5\)),有 \(q\) 次删边操作,求每次操作后有电的城市数量 解题思路 并查集 离线逆序处理,即只考虑建边操作,用并查集维护有电城市的信息即可 时

AtCoder Beginner Contest 264

E - Blackout 2 离线+并查集。 注意到只有删边操作,而删边操作其实不是很好维护。由于没有强制在线,所以可以离线一下然后逆序考虑,这样删边就变成了加边,这就用并查集就足以维护了。 AC代码 // Problem: E - Blackout 2 // Contest: AtCoder - freee Programming Contest 2022(AtCode

AtCoder Beginner Contest 263

咕咕咕咕。 E - Sugoroku 3 反着跑DP,或者说逆向归纳。 记从\(i\)开始走到\(n\)的期望步数为\(dp_i\)。易得\(dp_n = 0\),然后\(dp_i\)可以由\(dp_{j}, i + 1 \le j \le i + a_i\)推出,从后往前推即可算出\(dp_1\),也就是答案。 具体就是假设摇骰子摇到\(x\),那么就可以花\(1\)步走到\(

Atcoder Beginner Contest 259 (D, E, F)

D - Circumference 在直角坐标系下有 \(N\) 个圆, 给定每个圆的圆心坐标 \((x_i, y_i)\) 和 半径 \(r\), 判断是否能从起点 \((s_x, s_y)\) 到 终点 \((t_x, t_y)\) 你只能沿着圆弧走 \(1\le N \le 3000\) \(-10^9 \le x_i,y_i \le 10 ^9\) \(1 \le r_i \le 10^9\) 保证起点和

Atcoder Beginner Contest 257 problem D 题解

题目链接:点我 题目大意 有N张蹦床,每张蹦床i在\((x_i,y_i)\)的位置有一个属性值\(p_i\);一个人本身有一个属性值\(S\)。定义两蹦床之间的距离为: \[dis_{i,j}=|x_i-x_j|+|y_i-y_j| \]一个人在\(i\)蹦床能够跳到\(j\)蹦床,当且仅当满足: \[p_i*S\geq dis_{i,j} \]求一个最小的\(S\)

LINE Verda Programming Contest(AtCoder Beginner Contest 263)A-E

LINE Verda Programming Contest(AtCoder Beginner Contest 263) https://atcoder.jp/contests/abc263 F G 待补 A - Full House 输入5个数,判断是否满足两个数相等,另外三个数相等 #include <bits/stdc++.h> using namespace std; int main () { set<int> s; map<int, int&g

适合初学者的使用CNN的数字识别项目:Digit Recognizer with CNN for beginner

准备工作 数据集介绍 数据文件 train.csv 和 test.csv 包含从零到九的手绘数字的灰度图像。 每张图像高 28 像素,宽 28 像素,总共 784 像素。每个像素都有一个与之关联的像素值,表示该像素的亮度或暗度,数字越大表示越暗。该像素值是介于 0 和 255 之间的整数,包括 0 和 255。 训练数据

AtCoder Beginner Contest 261 F // 树状数组

题目链接:F - Sorting Color Balls (atcoder.jp)   题意: 有n个球,球有颜色和数字。对相邻的两球进行交换时,若颜色不同,需要花费1的代价。求将球排成数字不降的顺序,所需的最小代价。   思路: 将完成排序所需的最小代价记作 cost,将颜色不同的逆序对( i < j && xi > xj && ci ≠ cj )数量

AtCoder Beginner Contest 261 (C~F)

省流:A -2 然后 30min 过 ABCDEF 开始罚坐,看着自己 rank 一点一点掉下去一百多=_= 虽然 A -2 但是仍然懒得写 AB ABC261C NewFolder(1) 依照题意开个 std::map<string,int> 模拟就行了。AC Code ABC261D Flipping and Bonus 考虑 DP,设 \(f(i,j)\) 表示前 \(i\) 次掷骰子,并且最终

AtCoder Beginner Contest 260 F - Find 4-cycle

题目传送门:F - Find 4-cycle (atcoder.jp)   题意: 给定一个无向图,其包含了S、T两个独立点集(即S、T内部间的任意两点之间不存在边),再给出图中的M条边(S中的点与T中的点之间的边)。 求图中包含的一个四元环,若存在则输出环中包含的顶点,否则输出-1。   思路: 首先,四元环只能是由两个S中

Atcoder Beginner Contest 258 EX 题解

前言 这题有很高级的基于 \(Fibonacci\) 数列递推的做法,我提供一个简单做法。 那个高级做法的题解我附图在博客里面,不过禁止外传。 这个题矩阵加速的系数涉及到能不能选,按照不能选的数分段矩阵求幂是一个不错的方法 难度 差不多 \(2400\) 。 题意 给定 \(n,S\) 和一个数列 \(A\) ,

AtCoder Beginner Contest 259

AtCoder Beginner Contest 259 https://atcoder.jp/contests/abc259 先把D放这里,其他的明天补上来 D - Circumferences 题源:abc259_d 人生中第一次做出D题于是就来发题解了 题目描述 给定n个圆(圆心坐标和半径r),以及起点和终点的坐标(这两点必在某个圆上)。 已知 点可以沿着圆的边

AtCoder Beginner Contest 200 F

这题的思路很清晰,和这题类似。 我们先考虑不将它重复\(k\)次,即字符串\(S\)所有的方案的和的平均数。 首先,若没有?\(最少的次数=\lceil\frac{相邻两个数不同的个数}{2}\rceil\),那我们将每两个不同的字符的贡献看成\(\frac 1 2\),由于若相邻的不同的个数为奇数时要向上取整,我们发现,此

AtCoder Beginner Contest 258

咕咕咕咕。 E - Packing Potatoes 题意 有无穷多个土豆,第\(i\)个土豆的质量为\(w_i\),给定\(w\)的前\(n\)项,然后\(w_{i + n} = w_i\)。 有一个打包流程,一个袋子有个参数\(x\),不断将土豆放进这个袋子知道袋子中土豆质量和大于等于\(x\),然后封袋并使用一个新袋子继续打包。 要求回答

AtCoder Beginner Contest 258 A - E

传送门 这场打的有一种我又行了的感觉 A - When? 向下取整 + 取余 #include <iostream> #include <cstdio> #include <algorithm> #include <vector> #include <string> #include <queue> #include <functional> #include <map> #include <set>