CF1036D Vasya and Arrays 题解】的更多相关文章

Content 给定两个长度分别为 \(n\) 和 \(m\) 的数列 \(A,B\).你需要将两个数列都恰好分成 \(k\) 份,使得两个数列中第 \(i(i\in[1,k])\) 份的元素和对应相等.问是否可行,并在可行的情况下求出最大的 \(k\). 数据范围:\(1\leqslant n,m\leqslant 3\times 10^5\),\(1\leqslant A_i,B_i\leqslant 10^9\). Solution 我们先将两个数列中的所有数的和加起来,记为 \(S_A,…
链接 [http://codeforces.com/contest/1036/problem/D] 题意 给你两个数组长度分别为n,m; 有这么一种操作,用某个数组的某个子区间元素之和代替这个子区间,这样使得数组长度减少,两个数组都可以进行 问你最后两个数组一摸一样的时候,最大数组长度是多少?如果无法使两个数组一摸一样输出-1 分析 先判断开始数组总和是否相等,不相等是不可能最后两个数组一摸一样的#include<bits/stdc++.h> using namespace std; defi…
Content 有两个球队在踢足球,现在给出一些足球运动员被黄牌或红牌警告的时间,求每个队员第一次被红牌警告的时间. 注意:根据足球比赛规则,两张黄牌自动换成一张红牌. 数据范围:比赛时间 \(90\) 分钟,足球员号码 \(\leqslant 99\). Solution 这道题目就是一个很纯粹的模拟.主要注意以下几点: 两个球队当中也许有相同号码的球员.比如说近现代的 \(10\) 号球员有很多,比如说齐达内和梅西等. 球员被红牌下场了,但后面还有可能会录入关于该球员的警告信息,此时应该忽略…
Content 给定 \(T\) 组数据,每组数据给出四个整数 \(n,x,y,d\).小 V 有一本 \(n\) 页的书,每次可以恰好翻 \(d\) 页,求从第 \(x\) 页恰好翻到第 \(y\) 页的最少次数,或者报告不存在这样的方案. 数据范围:\(1\leqslant n,d\leqslant 10^9\),\(1\leqslant x,y\leqslant n\),\(1\leqslant t\leqslant 10^3\). Solution 分类讨论题. 如果 \(|x-y|\b…
Content 给定一个长度为 \(n\) 的序列 \(a\).定义两个序列 \(x,y\) 是相似的,当且仅当 \(\forall i\in[1,n],|x_i-y_i|\leqslant 1\).请你求出有多少个序列 \(b\),使得: 序列 \(a,b\) 相似. 序列 \(b\) 的所有数的乘积为偶数. 数据范围:\(1\leqslant n\leqslant 10\),\(1\leqslant a_i\leqslant 100\). Solution 根据题意我们不难发现,对于序列 \…
Content 小 V 有 \(s\) 块钱,商店里有巧克力卖,每块巧克力 \(c\) 块钱,现在商店给出优惠:购买 \(a\) 块巧克力可以免费获得 \(b\) 块巧克力,求小 V 最多能够买到的巧克力的块数. 你需要处理 \(t\) 组询问. 数据范围:\(1\leqslant t\leqslant 100,1\leqslant s,a,b,c\leqslant 10^9\). Solution 我们可以明显的发现,尽量把钱花完能够获得最多的巧克力.所以我们先买 \(\left\lfloor…
Professor GukiZ and Two Arrays 题解: 将a数组都sort一遍之后, b数组也sort一遍之后. 可以观察得到 对于每一个ai来说, 整个数组bi是一个V型的. 并且对于ai+1的最优解一定是在ai的右边. 然后我们将a数组 和 b数组枚举一遍. 然后再将a数组22组合, b数组22组合之后, 再枚举一遍. 代码: #include<bits/stdc++.h> using namespace std; #define Fopen freopen("_i…
CF915G Coprime Arrays 题解 (看了好半天终于看懂了) 我们先对于每一个i想,那么 我们设 我们用莫比乌斯反演 有了这个式子,可比可以求出△ans呢?我们注意到,由于那个(i/d)是下取整了的,所以i++后(下文的 i 是+1后的 i),只有当(d+1)|i 时答案有变化,于是 我们可以预处理a^n,以及用埃氏筛预处理△ans[i] CODE #include<cstdio> #include<cstring> #include<vector> #i…
A. Function Height 由于只能提升\(x\)为奇数的点,每个三角形的底一定为\(2\), 则要求我们求: \(2 * (h_1 + h_2 + - + h_n) / 2 = k\),使\(max(h_1, h_2-h_n)\)最小. 则应使每个\(h\)平摊重量,答案即为\(\lceil n/k \rceil\). #include <cstdio> #include <iostream> #include <cmath> typedef long lo…
1036A - Function Height    20180907 \(ans=\left \lceil \frac{k}{n} \right \rceil\) #include<bits/stdc++.h> using namespace std; #define LL long long LL n,k; int main() { scanf("%I64d%I64d",&n,&k); printf()/n+); ; } 1036B - Diagonal…