题目链接:http://codeforces.com/gym/102900/problem/K 、 题目大意:给一个图,每个点一开始为低价点或高价点,一商人从点0出发(点0一开始必定为低价点),按低价买入——高价卖出的顺序走,每个点被走过后高价变为低价,低价变为高价,问该图是否能够无限地走下去。 题目思路:首先,不妨记低价为0
11.10 今天由于有另外一套题目,所以题目比较简单,但我还是没有拿到很高的分。 T1 签到题,但打的有点久,在重复的这一个问题上花了较多的时间。 T2 比较简单的题目,但我并没有注意到题目所给出的 最小……最大,因此没有想到二分答案。对于二分答案并没有一个很好的灵敏度是不好的。 T3 数
给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 1 class Solution { 2 public int numTrees(int n) { 3 int []G =new int[n+1]; 4 // 初始化为0,1时的情况 5 G[0]=1
A.数字游戏 题意: 我们可以对一个非零数的二进制进行以下操作: 1.若二进制中有奇数个1,我们将其二进制最低位取反 2.若二进制中有偶数个1,我们将其二进制中非前导0最高位取反。 问给你个数x,需要操作几次变成0. 思路: 先把数转换为二进制,通过枚举找到规律如下: 令该数为n,其二进制中1的个
前言 每日水博客,学了莫比乌斯感觉就像打开了新世界的大门一样,看啥都想反演一下。 这不?又来一道省选题切一切~~~~ 题意一看就懂,就是求 \[\begin{aligned} Ans & =\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j)\\ & =\sum_{i=1}^{n}\sum_{j=1}^{m}{\frac{i*j}{gcd(i,j)}}\\ & 令d=gcd(i
前言 蒟蒻又来水博客了!!! 昨天听冯巨讲解了莫比乌斯反演+线性筛法,马上来写一道模板题; 首先分析题意,我们用脑子推一下就知道了答案 \[Ans(n) =\sum_{x=0}^{n-1}\sum_{y=0}^{x}[gcd(i,j)=1]\\ \]
打得很烂,打铁了,赛后补到了银牌题差不多(银牌还要手速),只能说实在是经验太少了。加油吧! J. Justifying the Conjecture 题意:问一个数能不能分解成一个\(x\)和一个\(y\),使得\(x\)是质数而且\(y\)为合数 题解:签到题,对于大于2的偶数显然都可以拆成2+一个偶数,大于5的奇数都可以拆成
题外话,昨天我写的题解被电脑重启还原卡搞没了 A - Pay to Win 题意:简单来说 题意就是 给一个N 然后给了4种操作的代价 求最小的代价。 sol.可以发现,对于每一次操作,如果要进行乘除法操作,那么肯定应该不留余数 那么只要对 数进行上下取证考虑就好了 #include<bits/stdc++.h> typede
I xay loves or 题意 问存在多少个 y y y 使得 $x\ or\ y = s $ 逐个按位讨论即可 #include <bits/stdc++.h> using namespace std; #define endl '\n' #define int ll #define rep(i, j,
CUC-ACM Autumn Training Round #1 Begin: 2021-11-03 14:30 CST 模拟题 TIPS: 记得开long long 1e91e9 2.even numbers 是偶数的意思 3.2.5 不行时试试*5/2就可以了 没过的题:E F I E - Shifting Sort CodeForces - 1579B 题意:给一个长度为n的数组,用n次以下选定区域集体左移的
题意:只读数组A[1...n]中填上1~n-1,有一个数被填两次, 额外常数空间,线性时间,输出那个填两次的数 解法:
题意 给定一张连通无向简单图 \(G\),每条边有一个边权。 给定正整数 \(k\),你需要找到 \(G\) 的一条从 \(1\) 到 \(n\) 的路径,设该路径的长度为 \(l\),你需要使得这条路径中边权前 \(\min \left\{ k, l \right\}\) 大的边的边权总和尽可能小。 题解 这种玩意看着人傻了, 一点想法没有,
适用题型 使用 \(O(1)\) 的时间求部分和:前缀和+差分 一维——求出数组的某一下标区间内符合要求的元素之和 若 \(S_{[1,n]}=a_1+a_2+…+a_n\) ,则 \(S_{[L,R]}=S_{[1,R]}-S_{[1,L-1]}\) 二维——求出二维数组某一子矩阵内符合要求的元素之和(通常和DP结合) 若 \(S_{[1,1]->[N,N]
想说的话 最近有点题荒,找了场简单一点好落实的ARC做了一下。 就是这一场了。 ARC092 C 题意 给两类点,第一类点为\((a_i,b_i)\),第二类点为\((c_i,d_i)\),若存在点对\((i,j)(i,j\in [1,n])\)使得\(a_i<c_j\)且\(b_i<d_j\),则\((i,j)\)可以组称一对好点。问最多能组成多少对好点。点不
题目链接:D. Training Session 题目大意: 给你n个(x,y)对,其中x是题目的主题 y的题目的难度 ,从中找出三个(x,y)对,要求这三个对要么是x都不同,要么是y都不同,要么是x和y都不相同。 思路: 很容易知道总的选择数就是 C
T1: 傻瓜DP,全世界都切l,就我没切考虑首先魔改LIS有40pts,考场最后想部分分利用线段树维护两个字符 然而没有时间,打挂l,其实已经提示正解是考虑字符集进行DP。 考场上一定要利用时间,分析每个部分分,很多具有提示正解的作用 考虑设f[i]表示考虑到当前位置,以i字符结尾的答案,转移时
A - Gold and Silver 题意:一开始,手头上只有一个黄金,有n天,每天一个黄金可以交换\(a_i\)个白银,并且\(a_i\)个白银也可以交换1个黄金,问每一天最多可以得到多少黄金,(每天如果换的话,就要全部换掉) sol.发现,一定是 开始选一个大的,再选一个小的这样 B - Balls of Three Colors 题意:\(给你
A - Seismic magnitude scales 题意: 地震震级每次加1,能量就会乘以32,给出A和B,求A是B震级的多少倍 思路: 求A,B的差值的32次方即可,pow的值最好还是用个值存储后再输出 代码: #include<iostream> #include<cmath> using namespace std; int main() { ios::sync_with_stdio(false)
DIV2-D 题意: 给你一个数n,代表这个线段长度,然后你可以选择奇数,就是用这些奇数加起来正好为n,注意顺序不同也代表不同的方案,问最后到底有多少方案满足条件,这就是所有可能的条件,然后最后再除以2的n次方即可,记得取模要求一下逆元。 思考: 记得要简化题意,其实题意那样说,最后理解下来
T1花了一个小时来写,一直在想贪心,没有用暴力,可以说是一点都没有往暴力的方向想,即使觉得自己的贪心是错的也将计就计写下去了,考试策略太差, T3在写了T1之后尝试去写了,写了两个小时的模拟,调试了很久才“过样例”,对题意理解不正确,审题不细,想当然,导致没有按照字典序排列,不仅题做
https://codeforces.com/contest/869/problem/A 题意: 给两个数组 \(a_i\) 和 \(b_i\),所有数字两两不同。从两个数组中各选一个数,使得 \(a_i\) \(xor\) \(b_j\) 恰等于两个数组中的随便哪一个数。判断方案数的奇偶 思路: 根据异或运算的性质,如果有某 \(a_i\) \(xor\) \(b_j=a_k\) ,那
A 题意 有个长度为n的序列, 每个数互不相同, 求总和最大的最长子序列, 并输出每个i; 题解 emmmmmm, 刚开始看到这个数据和题解被迷惑了, 以为有什么顺序, 并且一直在想一些复杂度较高的算法。 首先我们想到一个数要不是奇数, 要不是偶数, 且除l以外所有的偶数都是合数,那我们先求个sum, 如果
https://codingcompetitions.withgoogle.com/kickstart/round/00000000004362d6/00000000008b3771 分析 签到题。 按照题意模拟。 #include <bits/stdc++.h> using namespace std; #define LL long long int T,N,D,C; LL c,M; int main() { scanf("%d",&T); for(in
https://codeforces.com/contest/1348/problem/A 题意: 把数组 \(2^1,2^2,2^3,\cdots,2^n\) 分成个数相等的两堆,最小化两堆的和之差的绝对值 \(n\) 为偶数 思路: \(2^n\) 比其他所有数加起来还大,所以 \(2^1,2^2,\cdots,2^{n/2-1},2^n\) 放一堆,其他放另一堆 #include <bits/stdc++.h>
考虑 \(2x - y\) 我们改为 \(x + (x - y)\) 是一个更好的形式。 我们可以表示一个数为\(x_i + \sum_{j,k}(x_j - x_k) = K\) 我们考虑移到 \(\sum_{j,k}(a_j - a_k) = K - x_i\) 因为发现选取的数不会被擦除,所以不要自以为是的理解题意。 我们可以发现任何一个数都可以表示其他的