![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM
文章平均质量分 77
stiyet
这个作者很懒,什么都没留下…
展开
-
HDU 4985 Little Pony and Permutation
水题~注意:不是按照字典序进行排列输出,只要保证从“1”开始遍历就可以了#include#include#include#includeusing namespace std;int cnt[100100];int a[100100];int b[100100];int c[100100];int main(){ int n; while(~scanf("%原创 2016-07-10 09:56:12 · 201 阅读 · 0 评论 -
2016中国大学生程序设计竞赛 - 网络选拔赛 hdu 5839 Special Tetrahedron
题目大意:空间中有n个点,选出四个点构成一个四面体,四面体满足 1、至少四条边相等 2、如果四条边相等,不相等的两条边不相邻 解题思路: 1)先枚举两个点P1,P2P1,P2。构造一个以这两点为法向量,且经过这条线段中点m1m1的平面。(空间平面方程:平面法向量为 n=(A,B,C)n=(A,B,C),平面方程就为Ax+By+Cz=dAx+By+Cz=d)。 2)判断在此平面中的点,记录下原创 2016-08-15 11:13:38 · 284 阅读 · 0 评论 -
2016中国大学生程序设计竞赛 - 网络选拔赛 hdu5833 Zhu and 772002
题意: 有n个数,选任意个数,使得乘积为一个完全平方数。 解题思路: 题目保证这n个数的素因数不超过2000,也就是其素数的个数不超过303303,构造一个303∗n303*n的0101矩阵,进行高斯消元 ans=2ans= 2^(n−秩)−1(n-秩) - 1。 矩阵的构造:分解每一个数,统计其素因数出现的次数,奇数个在相应位置记为11,否则记为00。#include<iostream>原创 2016-08-15 11:52:33 · 276 阅读 · 0 评论 -
hdu 5862 Counting Intersections多校第十场
题意: 给你nn条平行于坐标轴的线段,判断线段之间的交点有多少。无重合线段,任意两条线段之间无相同端点。 官方题解: 由于数据限制,只有竖向与横向的线段才会产生交点,所以先对横向线段按x端点排序,每次加入一个线段,将其对应的yy坐标位置+1,当出现一个竖向线段时,查询它的两个y端点之间的和即为交点个数. 解题思路: 树状数组 首先将这些点离散化,然后处理线段时将点分为三种类型。将横向线段原创 2016-08-18 23:05:44 · 245 阅读 · 0 评论 -
hdu 5806 NanoApe Loves Sequence Ⅱ
题意:求满足第K大的数>=m>=m的区间个数 解题思路:将这N个数>=m>=m的标记为1,#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;typedef long long ll;int cnt[200000+10];ll原创 2016-08-06 22:59:26 · 238 阅读 · 0 评论 -
hdu 5125 magic balls
题意:有N个人,每个人有ai、bi两个球,可以用魔法交换ai和bi,每次交换消耗一点魔力值。现在有m点魔力值,问你最终得到的a的最长上升序列是多少,魔力值不能小于0.解法:dp[i][j][k]: i:代表当前的位置 j:代表当前取a或是取b (0代表取a,1代表取b) k:当k==0时,代表当前的最长序列,原创 2016-08-06 15:58:58 · 208 阅读 · 0 评论 -
hdu 5800 To My Girlfriend
∑i=1n∑j=1n∑k=1n∑l=1n∑m=1sf(i,j,k,l,m)(i,j,k,laredifferent)i,j为必选数的序号,k,l为必不选数的序号,m是背包体积。官方题解:令dp[i][j][s1][s2]表示前i个物品填了j的体积,有s1个物品选为为必选,s2个物品选为必不选的方案数(0<=s1,s2<=2),则有转移方程dp[i][j][s1][s2] = dp[原创 2016-08-06 15:40:42 · 224 阅读 · 0 评论 -
hdu 5802 Windows 10
官方题解:您可能是正版Windows 10的受害者_ 直接贪心就好比较直观的看法是使劲往下降,然后升回来或者使劲往下降然后停顿然后再使劲往下降。。。于是就能将问题变成一个子问题,然后dfs就好需要注意的是由于按up键也可以打断连续向下的功效所以应该记录停顿了几次,以后向上的时候用停顿补回来当p<=q时,直接上升即可当p>=q时,用down原创 2016-08-05 11:39:20 · 410 阅读 · 0 评论 -
多校 1001 Acperience
题意:给一组数W,-10000=0。求 各个 ( wi-@bi)^2 和的最小值解题思路,求这一列数的方差,@取其平均数,当wi要注意,在求方差时不能直接求,中间结果会暴long long,要用S^2=1/n * [ (x1^2+x2^2+x3^2+……)- n*x^2]α #include #include #include #include #include #include原创 2016-07-21 19:31:14 · 154 阅读 · 0 评论 -
HDU 5057 Argestes and Sequence(树状数组)
题目描述:给你N个数,有M个查询,每次查询输入一个字符“Q”、“S”,为“Q”时输入四个数,“L”、“R”、“D”、“P”,代表查询这N个数从“L"到”R“之间第D位(从个位数起)为”P“的个数。为”S“时,输入两个数,”X“、”Y“,表示将这N个数中的第”X“个数,改为”Y“。做题想法:刚开始的时候开了一个三维 的树状数组,结果MLE了,后来就想到每个数的各个为互不影响,就可以从第一原创 2016-07-18 15:54:53 · 471 阅读 · 0 评论 -
lower_bound 和 upper_bound
函数lower_bound()在前闭后开区间进行二分查找,返回大于或等于key的第一个元素的位置。若书所有元素都小于val,则返回区间的最后的位置。函数upper_bound()在前闭后开区间查找key的上界。元素值>key值的第一个元素位置。原创 2016-07-25 16:30:30 · 175 阅读 · 0 评论 -
hdu 5439 Aggregated Counting
解题思路:找公式,预处理,二分 b[n]中存储i的最后的位置,n在b[]b[ ]中的位置,代表其在f(f(n))f(f(n))中的系数 eg: n=3 f(n)=5, f(f(n))=1+ (2+3)*2 #include<iostream>#include<cstdio>#include<cstring>#include<原创 2016-08-26 15:46:17 · 382 阅读 · 0 评论