日常训练水题解
THOUSANDCODES
这个作者很懒,什么都没留下…
展开
-
CODEFORCES 535A 解题报告
CODEFORCES 535A 解题报告本题仍为水题,只要按照英语中的数字命名法来就可以了,STL简化一下操作,把基本元素枚举出来就可以了。map1~10,20,30,…,90。映射为单词。之后拆分十位和个位,用连字符拼接即可。 以下是代码(可直接AC):#include <iostream> #include <string> #include <map>using std::cin; usin原创 2015-04-23 01:07:39 · 340 阅读 · 0 评论 -
CODEFORCES 535B 解题报告
CODEFORCES 535B 解题报告仍然是水题,但是还是有可以说的地方。主要思路就是dfs可重排列。4,7组成的幸运数字,在n位数字的构造方式有2^n种,而数据是最多9位,则枚举只有512种,n^2的复杂度足矣。只枚举相应位数的4、7排列,前面的个数用2^n累加。只要遵循先选4再选7即可构造字典顺序,然后查找相应数。 以下是代码(可直接AC)#include <iostream> #inclu原创 2015-04-23 01:18:04 · 525 阅读 · 0 评论 -
CODEFORCES 534A 解题报告
CODEFORCES 534A 解题报告这是日常训练赛的水题。本题属于SPJ,任意符合规则的序列都可通过。进行探究后可以发现,从n>=5时就可以将所有学生安排在同一教室,方法是构造奇偶序列,如1 3 5 2 4 6这样的即可满足条件。n<5时手算解,特判即可。 以下是代码(可直接AC):#include <iostream>using std::cin; using std::cout;int m原创 2015-04-23 01:02:27 · 462 阅读 · 0 评论 -
7/21 A 解题报告
7/21 A 解题报告A题是说三个序列ABC,每个都有很多数,从每个序列中找出一个数相加等于给定的X。 这和紫书中的一个题类似,书上是4个集合找4个数相加为0。 基本方法就是把两个序列相加合并为一个和的集合,之后对这个集合排序并二分查找就有了。最终是nlogn的复杂度。如果二分的是另一个序列,则复杂度是n²logn,肯定不划算。 以下是代码(可直接AC):#include <iostream>原创 2015-07-22 08:57:51 · 387 阅读 · 0 评论 -
7/21 B 解题报告
7/21 B 解题报告仍然大水,求解一个方程,二分经典用法。 以下是代码(可直接AC):#include <iostream> #include <cmath> #include <iomanip> using namespace std;int main() { int t; long long y; long double res; long double tm原创 2015-07-22 09:01:38 · 293 阅读 · 0 评论 -
7/21 F 解题报告
7/21 F 解题报告没什么要说的,对两个列表中的第一个进行二分即可,因为第一个本来就是升序,不需要排序。对第二个列表中的每个元素,在第一个表二分查。 以下是代码(可直接AC):#include <iostream> #include <algorithm> using namespace std;int a[50001],b[50001]; int main() { int l,n,m,原创 2015-07-22 09:23:16 · 379 阅读 · 0 评论 -
7/21 E 解题报告
7/21 E 解题报告这题不需要什么算法,对数学熟悉的就很容易想到。求N^N的最后一位,乘法的末位是末位相乘的末位。于是,末位变化是有规律的。直接枚举0-9的规律即可。比如7-9-3-1这样变化。 以下是代码(可直接AC):#include <iostream> using namespace std;int main() { int t,dig,pos; long long n;原创 2015-07-22 09:19:26 · 362 阅读 · 0 评论 -
7/21 C 解题报告
7/21 C 解题报告这个题可以用数学方法,找最小值,求导后在区间内只有一个零点,和解方程又是一样的。如果直接分三个点后去查的话就有一些误差。 以下是代码(可直接AC):#include <iostream> #include <cmath> #include <iomanip> using namespace std;int main() { int t; long long y原创 2015-07-22 09:07:48 · 323 阅读 · 0 评论 -
7/21 D 解题报告
7/21 D 解题报告这题有点不好理解,意思是每个人只能拿一个整片食物的一部分,而且不能拿两种味道,求每个人都拿到一样体积的食物的情况下最大体积多少。让最大体积和最小体积的食物作为端点进行二分。 以下是代码(可直接AC):#include <iostream> #include <cstdio> #include <cmath> #include <iomanip> #define pi acos原创 2015-07-22 09:13:45 · 327 阅读 · 0 评论