====其他====
文章平均质量分 93
「已注销」
这个作者很懒,什么都没留下…
展开
-
HDU 3042 Josephus Again 题解
题目大意:给你一个初始的n个人,每次间隔的加人,直到加到k个人。对于样例3,7,q,初始序列为:1,2,3。第一轮加人:1,4,2,5,3,6。人不够,所以接着加第二轮:1,7,4,2,5,3,6。到了第七个人,所以停止。q次询问,第i次问你 qiq_iqi 的编号是多少。如上例:1:1,2:7,3:4,4:2首先分析数据生成的规律,每次翻倍,即:n→n∗2→n∗22...→n∗2r n \rightarrow n * 2 \rightarrow n * 2^2 ... \rightarro原创 2021-08-27 17:07:59 · 174 阅读 · 0 评论 -
初步探讨BitTorrent文件的结构
初步探讨BitTorrent文件的结构 百度百科介绍: torrent文件本质上是文本文件,包含Tracker信息和文件信息两部分。Tracker信息主要是BT下载中需要用到的Tracker服务器的地址和针对Tracker服务器的设置,文件信息是根据对目标文件的计算生成的,计算结果根据BitTorrent协议内的B编码规则进行编码。它的主要原理是需要把提供下载的文件虚拟分成大小相等的块原创 2017-03-19 00:36:54 · 3105 阅读 · 0 评论 -
ZOJ 3780 Paint the Grid Again (逆推)
思路:如果这张图能涂成的话,那么我们每次一定能找到一行或一列一样的,涂完的这行或者列就可以是任意的了,在接着向前边的状态变换。注意题目要求的字典序最小,那么可以列得在行前,所以我们从后往前处理时先处理行。然后同行或同列,从大到小处理。#include <iostream>#include <cstdio>#include <string.h>#include <queue>#include原创 2017-02-18 13:02:23 · 479 阅读 · 0 评论 -
HDU 2124 Can you find it?(二分)
思路:直接按照题目描述的话 n3{n^{3}} 的复杂度有些受不了,所以我们先预处理出 a[i] + b[i] 的所有情况存在一个数组里,然后对这个数组sort,之后每次分别查询 X - c[i] 是否在那个数组里即可。AC代码:#include <iostream>#include <cstdio>#include <string>#include <algorithm>#define ep原创 2017-01-17 23:32:59 · 504 阅读 · 0 评论 -
HDU 6058 Kanade's sum (区间第k大的数的贡献)
思路:维护一个链表,初始状态为输入的序列。 然后从1开始到n,对每个数统计他在哪些区间中,然后乘以这个数,作为这个数做出的贡献。 统计他在某些区间的办法:对于每个数i,我们向左找k-1个比他大的数(由于我们是从小到大处理的,且每个数处理后就在链表里删除了,所以这里我们直接一个个跳就好)。假设这第k-1个数为b,再向左找第k个为a,那么我们可以得知,(a,b】中的数皆可作为满足条件的区间的左端点。原创 2017-08-02 16:06:44 · 287 阅读 · 3 评论 -
HDU 6080 度度熊保护村庄 (叉积判断点线关系+图论)
思路:暴力枚举度娘的点,判断是否所有的要保护的点都在左边(或者都在右边,一样的)。如果都在左边,那么建一条i到j的边。坑:我到现在也不太明白为啥三点共线也可以。然而本题确实是:保护的点和ij在一条直线上,而且这个点在ij之间,那么这也算保护住了。优化:floyd的时候不优化会t。#include<stdio.h>#include <iostream>#include<string.h>#inc原创 2017-08-12 13:18:04 · 394 阅读 · 0 评论 -
HDU 6045 Is Derek lying?
思路:判断不可行的条件。输入n,a,b,分别代表n的长度,分数a,分数b。same代表相同的个数。 1. 当a或b 大于n 时 不可行。 2. (a−same)+(b−same)+same<=n (a-same) + (b-same) + same <= n 不满足这个的一定误解 3. 考虑当a大于notsame时,我们发现这时需要a-notsame个相同的题得正确。所以b需要大于等原创 2017-07-27 20:56:26 · 256 阅读 · 0 评论 -
HDU 6112 今夕何夕 (zeller\基姆拉尔森公式 星期公式)
思路:有两个专门算这个的公式。 zeller公式需要考虑模出来负数,基姆拉尔森公式貌似不用。。 因为比赛的时候我用的zeller公式,t到死。基姆拉尔森公式的使用方法:int ju(int y,int m,int d){ if(m==1||m==2){//把今年的1、2月看作上一年的13,14月。 y--;m+=12; } return (d+2*m+3原创 2017-08-12 20:18:15 · 390 阅读 · 0 评论 -
HDU 6150 Vertex Cover (思路 构造)
思路:链接:https://post.icpc-camp.org/u/ftiasch#include <cstdio>#include <iostream>#include <string.h>#include <ctime>#include <algorithm>using namespace std;const int maxn = 3030;int main(){ /*fo原创 2017-08-19 20:10:46 · 816 阅读 · 0 评论 -
HDU 6113 度度熊的01世界 (暴力dfs)
思路:因为条件是存在一个1的联通块包含着一个0的联通快的才是 0 所以,我们先预处理边界,对于0的边界处理成以访问过,对于边界是1的不做操作。 然后暴力判断每个点是否访问过来进行dfs求联通块的个数,如果0的个数和1的个数都是1,那么可以肯定图像为0,如果0的个数是0,1的个数是1,那么图像为1。#include<stdio.h>#include <iostream>#include<stri原创 2017-08-13 09:37:51 · 184 阅读 · 0 评论 -
HDU 4349 Xiao Ming's Hope(思路 lucas定理)
(图来自http://blog.csdn.net/acdreamers/article/details/8037918) 首先我们知道c(0,0)=1,c(0,1)=0,c(1,1)=1,c(1,0)=1c(0,0)=1,c(0,1)=0,c(1,1)=1,c(1,0)=1 这个是基础。然后对于某个c(n,m)c(n,m) 我们必须让右边的连乘式为1(模2的情况下,因为我们最终要求的也只是看他是原创 2017-08-14 21:25:22 · 427 阅读 · 0 评论 -
POJ 3219 Binomial Coefficients(组合数 lucas定理)
思路:此题思路类似于这个题,然后我们可以根据这个题的结论得到一个判断方法,n的2进制位上0的位置,对应的一定得是m相应位置的0,否则最后就是0了,所以我们得到了这个式子 (n&m) == m。 http://blog.csdn.net/wing_wuchen/article/details/77170227#include<iostream>#include<cstdio>#include<q原创 2017-08-14 21:33:35 · 315 阅读 · 0 评论 -
POJ 1230 Pass-Muraille (贪心)
思路:从小到大扫,遇到不合格的列就对所有边进行遍历 找出包含这一列的边并计算此边到最右边的长度 删最长边。#include <iostream>#include <cstdio>#include <string.h>#include <queue>#include <cmath>#include <algorithm>#include <map>#define pi acos(-1原创 2017-03-09 16:57:37 · 532 阅读 · 0 评论 -
CF 404 div2 (思路题 推公式 精度)
题目连接思路:当n小于m时,每天都必补满,所以直接输出第n天即可。 当n大于m时,比如第m+1天,此时剩下的是n-m,之后每天则是递减1,2,3,4,5。。。一个等差数列(因为是先增m再减,所以每天就相当于直接减一个xx-m)。 代码:#include <iostream>#include <cstdio>#include <string.h>#include <queue>#incl原创 2017-04-02 19:06:06 · 327 阅读 · 0 评论 -
HDU 4463 Outlets (枚举)
思路:枚举。 对于每个已经连好的点的集合中的每个元素进行枚举,枚举这个点所能到达的所有点的最小值,记录。 直到所有的点都连进点集中。AC代码:#include <iostream>#include <cstdio>#include <cmath>#include <algorithm>#include <string.h>using namespace std;struct node{原创 2016-08-19 20:15:13 · 182 阅读 · 0 评论 -
HDU 1051 Wooden Sticks (贪心 + 读不懂题目系列)
思路:按照length排序,如果length一样,按照weight排序,然后暴力枚举。 坑点:题目中的right after 代表着每个树枝最多使之后的一个树枝的花费变成0; 了解了这一点就没有什么难的了。。AC代码:#include <iostream>#include <iomanip>#include <cmath>#include <cstdio>#include <algori原创 2016-10-10 00:17:52 · 408 阅读 · 0 评论 -
java 复习小结(1)
一些小细节马上就要考java了,感觉慌慌的,赶紧整理一下知识点。1, static: 静态方法中不能直接访问实例变量和实例方法 static方法中不能使用this关键字(我的理解是因为是类的方法所以没有当前对象) 类中可以包含静态代码块,它不存在于任何方法中。当类被装载时,静态代码块只被执行一次。执行顺序就是他们在类中的顺序。2,final : final类不能被继承 final方法不能原创 2016-11-19 10:46:51 · 244 阅读 · 0 评论 -
HDU 5914 Triangle (水题)
思路:类似斐波那契数列。AC代码:#include <iostream>#include <cstdio>#include <ctime>#include <cstdlib>#include <string.h>using namespace std;int main(){ int t; cin>>t; int cas = 0; int n; wh原创 2016-10-04 20:58:54 · 149 阅读 · 0 评论 -
HDU 5867 Water problem (模拟水题)
AC代码:#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <queue>#define LL long longusing namespace std;int a[1010] = {0,3,3,5,4,4,3,5,5,4,3,6,6,8,8,7,7,9,8,8,6};int原创 2016-10-03 15:07:50 · 358 阅读 · 0 评论 -
HDU 1002 A + B Problem II (高精度加法)
思路:改良了之前自己写的一个高精度的模板。。。也不能说是改良吧,应该是改错。。。 这题不会出现 000 + 000000 = 0 这种情况。 然后就是恶心的格式。。。pe了好久。。。AC代码:#include <iostream>#include <cstdio>#include <ctime>#include <cstdlib>#include <string.h>#define N原创 2016-09-27 21:45:11 · 294 阅读 · 0 评论 -
HDU 1426 Sudoku Killer ( 暴力dfs 输入输出格式坑)
坑点:1,输入第二组之后的都是先输入哥换行再输入 2,输入每一组数据之后要换行,最后一组不用。 3,太粗心了,多样例的竟然把最重要的初始化忘了。。。#include <iostream>#include <cstdio>#include <string.h>#include <queue>#include <vector>using namespace std;int v[10][10]原创 2017-01-16 12:55:30 · 304 阅读 · 0 评论 -
UVA 10025 The ? 1 ? 2 ? ... ? n = k problem (智商题?想象力)
卡点:1,可能是太困了,,状态差的一匹。。先是没有考虑k=0的情况,(其实当中输入过k=0,然后输出0,然而我的大脑没一点反应。。) 2,好不容易找到了这个trick,然后忘记写continue,导致k=0时总是多输出一个数。。。#include <iostream>#include <cstdio>#include <cmath>typedef long long int lli;usi原创 2017-01-14 22:47:18 · 93 阅读 · 0 评论 -
HDU 6023 Automatic Judge(水题)
注意:只有当题目ac了才算罚时。(小心别读错题意)#include <cstdio>#include <iostream>#include <string.h>#include <queue>#include <algorithm>using namespace std;int v[13];int ttemp[13];char s[200];int main(){ int t原创 2017-07-03 19:58:01 · 325 阅读 · 0 评论 -
CSU 1803 2016 (数论+思路)
思路:我们可以将a,b分解为 a=k1∗2016+ia = k_1*2016 + i b=k2∗2016+jb = k_2*2016 + j 所以我们可以推出,使得 a∗b==0(mod2016) a*b == 0 (mod2016) 只需 i*j == 0 (mod 2016) 所以我们只需在2016内遍历i,j即可,然后计算出第一个数有多少个i,第二个数有多少个j,相乘计入答案。这样就原创 2017-05-06 13:01:29 · 89 阅读 · 0 评论 -
HDU 4414 Finding crosses(爆搜)
思路:枚举十字路口中心的位置。判断上下左右是否分别满足条件。#include <iostream>#include <cstdio>#include <string.h>#include <cmath>#include <map>#define eps 1e-9typedef long long int lli;using namespace std;int ma[60][60];c原创 2017-04-23 20:00:03 · 249 阅读 · 0 评论 -
ACdream 1068 sgx和路飞 (构造/暴力+多样例坑)
坑点:暴力过什么鬼,先扔个官方题解, http://acdream.info/topic?tid=1125貌似是数位dp+二分。 我的方法是先构造出最小值,如果在区间里就直接输出,否则就在下限开始暴力,这里的暴力貌似会有一个界限不会让你便利太多数据。#include <iostream>#include <cstdio>#include <string.h>#include <queue>原创 2017-02-17 15:38:41 · 270 阅读 · 0 评论