A-Easy h-index
读懂题是关键,h-index表示:一个最大的h满足至少有h篇论文并且引用次数不超过h。
给出的数据是a0
a
0
,a1
a
1
,a2
a
2
,a3
a
3
….ai
a
i
表示已经发表了ai
a
i
篇论文并且引用次数为i。求h-index。
所以从大到小枚举就好了啊,用后缀和表示现在已经有多少篇论文,枚举到后缀和>=引用次数即可,输出i即是答案。
比如样例2,从后往前枚举
已有论文 | 引用次数 |
3 | 2 |
正好满足条件。
样例3
已有论文 | 引用次数 |
0 | 3 |
0+0 | 2 |
0+0+0 | 1 |
0+0+0+0 | 0 |
所以答案为0
B-Higher h-index
找规律…(n+a)/2
F-Sorting
也算签到题吧…long double可以过的,实在不行就交叉相乘一下。
就是有一点要注意,如果api−1+bpi−1api−1+bpi−1+cpi−1
a
p
i
−
1
+
b
p
i
−
1
a
p
i
−
1
+
b
p
i
−
1
+
c
p
i
−
1
=
=
api+bpiapi+bpi+cpiapi+bpiapi+bpi+cpi,此时需要满足左面的下标要<
<
<script type="math/tex" id="MathJax-Element-32"><</script>右面的下标
G-String Transformation
也是找规律吧…这个规律就是如果c的个数不同一定是No,如果相同,那么就判断以c为分割的区间内a和b的奇偶性,如果相同就是Yes否则就是No。
但是小伙伴们想没想到可以用异或来做哩~想一想异或的性质(a^0=a,a^a=0,b^a^a=b),对以c为分割点的区间异或,最后剩下的肯定是a或者b或者ab或者ba组成的集合,最后判断这两个集合是否相同即可。
K-2018
题意就是求有多少对x,y(a<=x<=b,c<=y<=d)
x
,
y
(
a
<=
x
<=
b
,
c
<=
y
<=
d
)
满足(x∗y)mod2018=0
(
x
∗
y
)
m
o
d
2018
=
0
这里2018很特殊,因子只有1,2,1009,2018四个,所以我们只要求出[a,b]
[
a
,
b
]
区间和[c,d]
[
c
,
d
]
区间内的因子个数即可,就是要注意会有重复计算的,具体看注释吧~