A. Ryouko's Memory Note 题目连接: http://www.codeforces.com/contest/434/problem/A Description Ryouko is an extremely forgetful girl, she could even forget something that has just happened. So in order to remember, she takes a notebook with her, called Ry…
题目链接:http://codeforces.com/contest/433/problem/C 思路:可以想到,要把某一个数字变成他的相邻中的数字的其中一个,这样总和才会减少,于是我们可以把每个数的左右两个相邻的数字存起来,然后我们可以想到,把某个数变成这些相邻的数的中位数总和最小. #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include…
题目链接 题意:给m个数字, 这些数字都不大于 n,  sum的值为相邻两个数字 差的绝对值.求这n个数字里把一个数字 用 其中另一个数字代替以后, 最小的sum值. 分析:刚开始以为两个for 最坏情况下 会超时,但是实际不会,因为如果第一个for循环多的话,第二个for循环肯定少. 替换的时候,用这个数相关联的排序后 中间的一个数替换,是最小的. #include <iostream> #include <cstdio> #include <cstring> #in…
比赛链接:http://codeforces.com/contest/433 A. Kitahara Haruki's Gift time limit per test:1 second memory limit per test:256 megabytes Kitahara Haruki has bought n apples for Touma Kazusa and Ogiso Setsuna. Now he wants to divide all the apples between th…
题目连接 题意: 给n和m,一行m个1<=x<=n的数.记c=.如今仅仅能选择一个数x变成y,序列中全部等于x的值都变成y,求最小的c 分析: 对于一个数x,把与他相邻的所有的非x的数所有写下来. 假设x增大,那么一部分值增大.一部分减小,且每一个数的增大值或减小值都是x的变化值(均相等),也就是说总的结果仅仅和比x大的数与比x小的数的数量有关,所以即中位数. const int maxn = 110000; LL ipt[maxn]; map<LL, vector<LL>…
题目:http://codeforces.com/contest/433/problem/C 没想到做法就各种纠结, 今天做的都快疯掉了, 太弱了, 等题解一出,就各种恍然大悟 不应该不应该 正文: N这个条件是有用的,然后我们可以将数据一个点连接他所有想接的点,但是相等的点就不要连接, EG: 1 2 3 4 5 4 3 1 3 2,1 5,1 6; 对于1:2,3,3,2,5,5,6;三个点:每个点都这样连一下, 然后对于一个点,比如还是1:我们改变1使其到所有相邻的点距离最小,所有sort…
B. Nanami's Digital Board 题目连接: http://www.codeforces.com/contest/434/problem/B Description Nanami is an expert at playing games. This day, Nanami's good friend Hajime invited her to watch a game of baseball. Unwilling as she was, she followed him to…
主题链接:http://codeforces.com/contest/433/problem/B 题目大意:给n(1 ≤ n ≤ 105)个数据(1 ≤ vi ≤ 109),当中有m(1 ≤ m ≤ 105)个问题,分两种.第一种:给出l,r,让你求出v[l],v[r]之间的全部数据和:另外一种:先将原数据升序排序得到vv数组,给出l,r,让你求出vv[l],vv[r]之间的全部数据和: 此题假设用暴力求解,因为数据太大,会TLE,所以利用树状数组,高速求解区间和的问题. 假设不懂树状数组,能够…
题目简单描述就是求数组中[l,r]区间的和 #include <iostream> #include <vector> #include <string> #include <algorithm> #include <numeric> using namespace std; int main(){ int n,m; cin >> n; vector<,); ; i <= n ; ++ i) cin >> v[…
解决思路是统计100的个数为cnt1,200的个数为cnt2 则 cnt1    cnt2 奇数      奇数 奇数      偶数 偶数      奇数 偶数     偶数 当cnt1为奇数时一定剩余一个100,不能均分,所以输出结果为NO 当cnt1为偶数且cnt2为偶数则肯定能均分 当cnt1为偶数且cnt2为奇数时 如果有至少两个100,则取出2个100,转换成200,则cnt2就是偶数,而cnt1也是偶数,可以均分 否则没有两个100,则cnt2是奇数不能均分 #include <i…