杂题
文章平均质量分 65
流風回雪_YZK
只盼来日登蜀道..
展开
-
安大校赛/异或运算一题。
该题怒跪,原因:1,对异或运算还不太本质理解;2,异或优先级低于“!=”,“==”都不知道!!。题意:给一个矩阵,c[i][j]=(a[i]^b[j]),矩阵给定,求a[i],b[j],(a[i]的字典序最小),无解则输出。先了解下异或吧:性质1、交换律2、结合律(即(a^b)^c == a^(b^c))3、对于任何数x,都有x^x=0,x^0=x原创 2014-03-27 11:06:45 · 789 阅读 · 0 评论 -
hdu 5071
没事模拟模拟。。。做模拟贵在不慌不乱、有条不紊的心境~ #include #include#include#include#include#include#include#include#includeusing namespace std;int q[5050]; int n,pi;long long words[5050]; long long a原创 2014-11-02 19:51:39 · 1172 阅读 · 0 评论 -
hdu 5065 数学题
#include#include#includeusing namespace std;int A,B,y;double ans=0;double inline f(double x){ return A*x*x-(B*sin(x)+y);}double inline absf(double x){ if(f(x)<0)return -f(x); retu原创 2014-10-17 20:53:19 · 1116 阅读 · 0 评论 -
hdu5191
求获得这样的区间:连续w个元素值都为h,的最小移动次数。扫一遍,每次处理w区间,更新最小。预处理出和。 注意long long,注意数组开大点,比赛因为数组少开了一倍。。因为前后都可以扩展出W。还好成功hack一些人。。保持rating。。#include#include#include#include#include#include#include#includeusi原创 2015-03-22 11:31:54 · 985 阅读 · 0 评论 -
hdu5479 最小代价的统计
哎,久疏战阵啊,决定以后还是多打打BC吧~毕竟算法不能丢下~题意:给一个括号序列“如((()))()”,最小的修改是它任意的子序列都不匹配(非法)。 O(N)算法:最终状态必然是“))).....(((”这样子的,所以用俩个数组,分别从左右两边扫,记录到当前位置代价。球最小代价即可。哎。。。#include#include#include#include#in原创 2015-09-27 18:43:29 · 562 阅读 · 0 评论 -
NOIP2015复赛题解报告答案以及代码
第一题,直接是暴力模拟。#includeusing namespace std;int a[20002];int s[20002];int main(){ int cnt=1; for(int i=1;i<10001;i++) { for(int j=0;j<i;j++) { a[cnt++]=i;原创 2015-11-16 11:05:30 · 3265 阅读 · 0 评论 -
hdu6016 bc#92
哎 。。今天突然看到bc就玩 了一下,久疏战阵,发现现在代码都写不动了。。。。题意: 给一个二分图,求包含4个不同节点的链的序列数。简单题,开始想了半天没想到, 最后无奈写暴力dfs交了,显然TLE。正确思路:四个点,三条边,每次枚举中间那条边,然后该边的俩个顶点的度数-1的乘积就是以该边为中间边的所有方案数。code:#include#include#原创 2017-02-25 22:22:26 · 500 阅读 · 0 评论 -
没事玩玩leetcode周赛 #30~#34 #40 #42~#48 #50~#54 #56~ 61 #65~71
怒跪。#1. 矩阵reshape操作,手速题。#2 求 给定整数【-1000,1000】数组(20000长度) ,求区间和为k(1e-7,1e7)的区间数量。算法:朴实平方算法肯定超时。 预处理前缀和,然后 问题转化为数组中内俩个数差为k的对数。 ,从前往后扫,每次 ans+=map[sum[i]-k]有几个,然后map[sum[i]]++。 这样子在统计答案之后再做后面的加入, 防止后面的和...原创 2017-04-30 11:38:45 · 1403 阅读 · 0 评论 -
hdu 5035 概率论
n个服务窗口,每个服务窗口等待时间服从指数发布,求等待时间的期望。解: 分俩阶段:先是等待到轮到他,再是被服务的时间。 每个窗口的等待时间期望是1/ki(1/ki,指数期望发布公式),总等待时间期望为1/(求和ki),“一小撮方法”每个窗口平均单位时间处理1/(1/ki)个人,,单位时间可以处理(sum(ki))个人,一个的平均等待期望(1/(sum(KI)).再求被服务时间的期原创 2014-10-16 22:36:58 · 1059 阅读 · 0 评论 -
hdu 5073
#include#include#include#include#includeusing namespace std;int n,k;long double sumxx[50005];long double sumx2[50005];long long v[50005];int main(){ int T; cin>>T; while(T--)原创 2014-10-22 22:08:52 · 989 阅读 · 0 评论 -
hdu 4781 /构造 出 符合要求的图
哎,第一次见给点数和边数,让按要求还原出有向图的。要求概况一下:1.强连通。2.任意俩点直接之间只有一条有向边,自己和自己无边。3.任意一个闭合回路权和%3为0。4.每条边的权理论不同,而且是1,2,3..m开始就想到必有一个大环1->2->3->.....n,n->1; 模拟比赛时.,没有往下想了。。先添加边: i->i+1是权为I,之后从(n,n+1,n+原创 2014-09-01 21:44:50 · 981 阅读 · 0 评论 -
HDU4850 构造一个长度为n的串,要求任意长度为4的子串不相同
n《=50W。(使用26个字母)构造方法:26个,最多构造出26^4种不同的串,长度最长是26^4+3,大于是输出“impossble”,用四维数组判重。每次向前构造一位(先从上一位字符后一个开始),这样,可以构造出26^4-25种,打印出来发现(bbbb~zzzz),构造不出来,于是,学习了他人方法,把这些放在最前面,再重复上述方法构造即可(以后都可以用这种向前推一法构造)。PS:从中额原创 2014-07-25 22:57:56 · 1292 阅读 · 0 评论 -
hdu 4883
简单题,当时竟然没有敲出来╮(╯▽╰)╭。。。方法:每个时间点排序从小到大排序,之后扫一遍即可:是进的时间点就加人,反之出人。更新最大值即可。。。。囧。。。#include#include#include#include#include#include#includeusing namespace std;struct times{ bool io; in原创 2014-07-28 12:33:26 · 806 阅读 · 0 评论 -
2014工大校赛题目以及解
a,b题不说。c题思路是每次枚举俩个点,用半径R确定最大的圆(这样的圆有俩个,求圆心手算有点小麻烦),更新最大值,3次方的,100个点,不会超时。D题是枚举+贪心,所有物品一共只能是N+1种被拿的情况:要么全是用R(该位子是若用右手标记R,若用左手标记L):RRR...RRR,或者第一个物品用L:LRRR...RR,.....依次到LLLLLL..LLL,一个序列来记录每个物品是被左手还是原创 2014-07-09 16:53:06 · 925 阅读 · 0 评论 -
汉若塔系列续:汉诺塔VIII、汉诺塔IX、汉诺塔X。
汉诺塔VIII,在经典汉若塔问题上,问n个盘子的情况下,移动m次以后,是什么状态。我的思路:本质还是dfs,但是用m的值来指引方向,每搜一层确定第i个盘子在哪个塔,o(n)的算法,看图说明:原创 2014-07-10 19:54:14 · 1364 阅读 · 0 评论 -
hdu 4791 dp预处理+二分
题意: 打印东西,给出区间(张数)对应费用(到达一定张数就都按某更低的价格),m次询问,问最优费用。给的时候按张数递增给的。dp出当前张数到最后的最小值。对于询问q,然后二分处》=q的最小的一个张数的价格。min(这个价格*p,dp[这+1])即可。nlogn;后来看网上有些人用线段树,没必要的。ps:开始竟然因为犯中间数据爆int的初级错误!,不该不该!#include#inclu原创 2014-09-05 18:44:58 · 834 阅读 · 0 评论 -
hdu 4932 /bestcoder B题 #4 /思维题
题意:给一个数列(整数),用一些不相交的区间去覆盖(只能是用端点去覆盖,端点可以交)。而且区间出度相等。求最大区间长度。开始一下就敲了,枚举每个区间长度,判断合法,更新最大。但是后来一看小数,感觉不行,改为二分,后来还是挂了。。。赛后才知道,二分的时候,答案必需要满足单调性啊,这里小的数据不行,大的数据可以行!如 0 1 5 6 10, 3不行,4行。后来才知道,枚举时,每个差值的一半原创 2014-08-11 10:07:51 · 841 阅读 · 0 评论 -
hdu4821 字符串 hash (bkdrhash)
题意: 给一个字符串,和m,l, 找出这样的子串: 长度为m*l, 由m个长度为l的串组成,每个串都不同。(s,size()字符串hash典例。 这里用的是bkdrhash 法。也是最常用的冲突最少的一种。原理:把字符串和数值对应。这里用base=31(一般用质数),先是扫一遍,处理处每个位子到结尾构成的串的hash值(倒过来的),然后长度为l的子串的haash值就好算了。之后枚举开头原创 2014-09-19 15:47:37 · 1240 阅读 · 1 评论 -
hdu4972 数学杂题
题意:有俩个队进行n场比赛,每场只记录下分差的绝对值(不知道哪一方),求最后可能比分。思考了半天,还分类讨论。。结果也想到只有 1->2、2->1的情况有俩种可能。。。哎还是跪,这题坑点交多,自己弱爆。。官方正解:既然已经知道差值,那么只有知道双方最终得分之和就知道比分了!(x-y已知,当然要用x+y去确定!问题转化能力!)问题转化了!每次1-》2/2-》1有总分增加1/3的俩种可能,设有原创 2014-08-23 16:33:49 · 846 阅读 · 0 评论 -
hdu 4974 数学杂题/证明
题意模型:n个正数,每次可以做下面俩种操作之一:1:取一个数减一。2:取俩个数各减一。都必需保证每次操作的数>0.求使得所有数字为0的最少操作次数。都说是简单题,网上还有不少错误解法(排序后扫一遍,每次取最大的俩个数减到0: 2 2 2 这样是4次,正解3次)。应该是每次取最大的俩个数,各减1.若maxi>sum/2,则ans=max,每次操作都用那个max,和其他一个原创 2014-08-23 17:37:31 · 963 阅读 · 0 评论 -
acdream 1203 解三角形
已知角a,b,c,d求角aed.(0=思路:其实和边没关系,都相似的。不妨设ab=10.0;由正弦定理容易求出 ad,ae,余弦定理求出de。答案就呼出来了。最后求反三角。算法没问题。但是比赛时候一直跪。。。后来躺床上一想,哎!acrsin返回的是 (-pai/2,pai/2)!若是钝角他返回锐角啊!sb了!所以判断一下脚aed是否大于90,再做正弦定理。或者直接用arccos求,原创 2014-09-09 10:21:12 · 904 阅读 · 0 评论 -
hdu4772 坐标旋转
俩个n*n牌,问旋转0,90,180,270,时候重叠在一起一样的数最多的情况。坐标旋转一下即可,推一下旋转公式:如90度,回忆在坐标系中,(x,y)关于(0,0)旋转90为(-y,x),若关于(a,b),则坐标转移,把(a,b)看错原点(x-a,y-b)->(b-y,x-a),再坐标系转换回来:(b+a-y,x).在数组坐标中类似可推:#includeusing namespace原创 2014-08-27 21:44:52 · 937 阅读 · 0 评论 -
zoj 3811 条件下判定某遍历序列的合法性/ 一遍 dfs
题意:在某些点上安装首次访问时候会报警的机器,给出报警嗲你的顺序,问是否合法。思路:按所给的序列,每个进来时判断这个点目前能否达到(第一个可达总是),若能,则该点进行扩展遍历所有没有报警器的点,遇到有的报警器的标记可达就返回。预判:判断原图连图性。#include#include#include#include#includeusing namespace s原创 2014-09-12 09:15:13 · 1033 阅读 · 0 评论 -
codejam 2018 round c
熟悉环境练习赛,谷歌这种离线求解方式还是很不错的。三道题 分别为大数据小数据。第一题,求一个只有一个环的无向图,求出所有点到图中环的最小距离。dfs, 每次把点入栈,结束出栈,如果遇到祖先点就弹栈,(这时候这些点都是环中的点) 。然后bfs一遍求出所有点搭配环最短路。O(V+E)第三题,数学题,先模拟以下,求出A, 然后思考归纳下, 等比数列和,然后就是(除法取模)求逆元(O(N)预处理出逆元),...原创 2018-05-27 21:35:31 · 645 阅读 · 0 评论