2016.09.15【初中部 NOIP提高组 】模拟赛C
来源:互联网 发布:贪吃蛇寻路算法 编辑:程序博客网 时间:2024/06/05 07:11
T1:
这一题,
虽然自己写的太复杂.
虽然考试时因为一个加号而没检查出来从而爆0.
虽然看到别人十分钟就打好了,而我还在慢慢的调.
虽然……
但还是感觉自己的方法好理解233。
当然,这是最最智障、傻x、恶心的方法。
任何一个数,他的友好数对很明显只有他的位数那么多个。
则,我把一个数的友好数对所有求出来。
如果有n个,则这n个互为友好数对的数都有N-1个友好数对。
则这样子,可以线性求出1到n总共有多少个友好数对。
当然,还需减去1~l-1的友好数对。
但这里,不能直接减去友好数对个数,而需要减去1~l-1中所有可能影响友好数对的数。
怎么计算呢?
设一个数x,它的友好数对储存在w里。
对于w[i],如果<l 则inc(tot1)
如果<=r则inc(tot2)
那么对于x,他所能影响的友好数对为:
jc[tot2-1]-jc[tot2-tot1-1]
(jc[i]=1+2+……+i)
最后用1~r的总共友好数对,减去每一个被影响的友好数对的个数就行了。
另一种简单的方法就是:
你已经求出了友好数对了,直接判断这些友好数对的个数是否在[l..r]的区间不就行了,在这个区间就累加答案啊!
(我真tm是个智障)
T2:
step1:
因为题目要求路径必须对称,所以可以把矩阵上半部的每一个对应的数相加,于是到达对角线位置时,就可以视为走完全程且路径堆成了。
step2:
spfa把最短路求出.
step3:
bfs求路径数.
其中求路径数需要注意,对于
(x,y)=>(xx,yy)
要从(x,y)走到(xx,yy)(假设已是最短路径),则需要当前(xx,yy)四周的点所有能以最短路径到(xx,yy)的路径数仅剩当前这一条(x,y)到(xx,yy)的最短路径,才加入队列,否则只加上路径数,并把路径数减1。
(╮(╯▽╰)╭智障的我,听别人讲了五遍才明白,理解能力有待提高)
T3:
很容易想到用堆。
不过,需要用个模拟链表来判断一下当前每一个人的身旁是哪些人,然后就可以过了。
(对于不用模拟链表而暴力水过的,你牛逼)
- 2016.09.15【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.15【初中部 NOIP提高组 】模拟赛C
- 2016.09.03【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.03【初中部 NOIP提高组 】模拟赛C
- 2016.09.03【初中部 NOIP提高组 】模拟赛C
- 2016.09.10【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.03【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.10【初中部 NOIP提高组 】模拟赛C
- 2016.09.10【初中部 NOIP提高组 】模拟赛C
- 2016.09.10【初中部 NOIP提高组 】模拟赛C
- 2016.09.10【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.03【初中部 NOIP提高组 】模拟赛C题目
- 2016.09.03【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.10【初中部 NOIP提高组 】模拟赛C 总结
- 2016.09.17【初中部 NOIP提高组 】模拟赛C
- 2016.09.17【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.10【初中部 NOIP提高组 】模拟赛C题解
- 2016.09.17【初中部 NOIP提高组 】模拟赛C
- 一文搞懂隐马尔科夫(HMM)模型(转)
- org.xml.sax.SAXParseException: Content is not allowed in prolog.
- 北京银行卡bin号 搜集最新
- 软连接实例应用
- SQL中 decode()函数简介
- 2016.09.15【初中部 NOIP提高组 】模拟赛C
- wordpress分类目录链接去掉cateogry
- Retrofit+RxJava的使用
- Android Studio调试技巧
- Alluxio初探
- WIN10如何进入BIOS界面
- 【Toast】跳出三界外,不在五行中
- 内存数据的十六进制Print
- 数据结构之线性表的静态单链表存储结构(应用求集合(A-B)&&(B-A))