05 2020 档案
摘要:A - Sorted Adjacent Differences 题意:给定数组,对其排序,使其满足|a1−a2|≤|a2−a3|≤…≤|an−1−an|. 解题思路:先对数组进行排序,由最大值与最小值之差最大,次大值与次小值之差第二大,依次类推,将数组从中间开始输出. ac代码: #include<
阅读全文
摘要:F - Construct the String 题意:给定n,a,b,求长度为n,每a个字母含有b个不同的字母的字符串. 解题思路:创建长度为b,前a个字母不同的字符串循环输出即可. ac代码: #include<iostream>using namespace std;char s[2005];
阅读全文
摘要:E - Candies and Two Sisters 题意:给定n,输出满足a+b=n,a>b的个数 解题思路:当n<=2时为0;n>2时,n是偶数为n/2-1,n是奇数为n/2. ac代码: #include<iostream> using namespace std; int main(){
阅读全文
摘要:D - Kana and Dragon Quest game 题意:龙最初有x点生命值,判断Kana是否可以使它的生命值小于等于0,Kana有俩种操作用来对付龙: 虚空吸收,使用之后龙的生命值由原来的生命值h变成h/2 + 10 雷击,使用之后龙的生命值由原来的生命值h变成h - 10Kana最多只
阅读全文
摘要:B - Balanced Array 题意:给定数n,求是否存在满足前n/2的数均为偶数,后n/2的数均为奇数,且前n/2个数之和与后n/2个数之和相等的数组. 解题思路:设偶数为2n,奇数为2n-1,可知偶数与奇数依次各相差1,若数组最后一个奇数为n+2n-1,则存在这样的数组. ac代码: #i
阅读全文
摘要:C - Ichihime and TriangleC 题意:给定a≤b≤c≤d,输出满足 a≤x≤b b≤y≤c c≤z≤d 且能形成三角形的x,y,z. 解题思路:由三角形性质得出:b,c,c满足题意. ac代码: #include<iostream>using namespace std;int
阅读全文
摘要:A - Candies 题意:给定n,输出满足x+2x+4x+⋯+2^k−1x=n的x的值 (k>1) 解题思路:2^k-1累加,判断其值是否被n整除即可 ac代码: #include<iostream>using namespace std;int main(){ int t,n,i,s,sum;
阅读全文
摘要:VJ F - Nastya and Door 题意:把一个门扔到连着的n座山上,门如果掉到山峰上就会断掉成两半。 某座山的高度比左右的两座山都要高就叫山峰。 现在给出n座山的高度a[i],求长度为k的区间内峰值最多为多少,并输出这个区间的左端点(区间需要将峰的左边和右边都包括)。 解题思路:先在[2
阅读全文
摘要:VJ E - Nastya and Rice 题意: 对于每一个样例,判断是否满足∃n∗({a−b≤x≤a+b})=({c−d≤y≤c+d}) 解题思路: 不相交的情况是n∗max(x)<min(y)和n∗min(x)>max(y),排除这两种情况其他情况都是“Yes”。 ac代码: #includ
阅读全文
摘要:VJ D - Binary Period 题意:根据给定的t子序列,输出周期k最小的字符串s. 解题思路:分为两种情况,只含有一种字符的字符串与同时含有1,0的字符串。 若要使周期尽可能小,则使循环尽可能多。 ac代码: #include<iostream> #include<cstring> us
阅读全文
摘要:VJ C - Road To Zero 题意:给定x和y,有两种操作方法使其得到x=y=0,求最少花费是多少; 操作1(花费a):其中一个数加1或减1;操作2(花费b):全部加1或减1。 解题思路:根据题意,只能进行两种情况的操作,不能同时加减1,会使其为负值; 考虑到a和b之间的差值,两种操作判断
阅读全文
摘要:VJ B - Phoenix and Beauty 题意:给定序列长n的数组和周期k。完美数组的定义是数组中每一个连续k项的子段和为定值, 现在要求插入一些数使得数组满足条件,输出构造的新数列长度及元素. 解题思路:记录原数组数字种类,与循环个数k相比较,记录原数组出现的数字,按周期n循环个数k输出
阅读全文
摘要:VJ A - Phoenix and Balance 题意:Phoenix 有n个重量为2^1 , 2^2 , 2^3…2^n的硬币,分成两堆,使总重量之差为最小值。解题思路:根据例题,发现规律,其最小值为2+2^2+2^3+...+2^n/2。 ac代码: #include<iostream> u
阅读全文
摘要:D.Dividing by Two 题意:给定两个数a,b,通过最少的操作使a,b相等, 可以执行的操作只有a=a/2(a为偶数)和a=a+1 思路:当a<=b时,可以进行的操作只有a=a+1; 当a>b时,尽可能多的使a=a/2,当a<b时再a=a+1; AC代码: #include<iostre
阅读全文