2 邵光亮

尚未进行身份认证

我要认证

要为自己喜欢的事情不留余力

等级
TA的排名 3k+

Educational Codeforces Round 90 (Rated for Div. 2)

A. Donut ShopsAC代码:int n, m, k;int ans1, ans2;int main(){ int t; sd(t); while (t--) { ll a, b, c; slddd(a, b, c); if (a >= c) ans1 = -1; else ans1 = 1; if (a * b <= c) ans2 = -1; else ans2 = b; pdd(ans1, ans2); }

2020-06-28 21:50:09

Codeforces Round #652 (Div. 2)

A. FashionabLee两边同时平行,是 444 的倍数即可。AC代码:int n, k, m; int main(){ int t; sd(t); while (t--) { sd(n); if (n % 4 == 0) puts("YES"); else puts("NO"); } return 0;}B. AccurateLee对于每个 000 先存起来,对于每个 111 如果后面有 000 就可以找到最远的那个 000 然后把中间的都消

2020-06-24 08:42:44

2020年6月21日总结

最近很不在状态,可能是每天做的题少了,事情比较多,赶紧结束课程设计然后开始正式训练,前几天我家附近有一个北京回来的感染者,很慌。今天学到一个小技巧,判断一个数有无奇数因子。if((n&(n−1))==0if((n \& (n - 1)) == 0if((n&(n−1))==0一个偶数 nnn 没有奇数因子的话, 那它一直除以 222 所得的数都是偶数(直到除成 111 ), 说明这个偶数一定可以写成 2k(k>0)2^k (k > 0)2k(k>0), 二进制形

2020-06-21 22:16:21

Codeforces Round #651 (Div. 2)

A. Maximum GCD最小因子是 222 ,所以答案就是 n2\frac{n}{2}2n​ 。AC代码:int n, m, k; int main(){ int T; sd(T); while (T--) { sd(n); pd(n / 2); } return 0;}B. GCD Compression没有要求最后得到的 GCDGCDGCD 是最大的,那么就让奇数+奇数,偶数+偶数,这样得到的 GCDGCDGCD 最小也是 222 。AC代码:const

2020-06-21 16:50:56

Codeforces Global Round 8

A. C+=两个数交替相加判断次数。AC代码:int n, m; int main(){ int T; sd(T); while (T--) { int a, b; sddd(a, b, n); if (a < b) swap(a, b); int ans = 0; bool flag = 0; while (a <= n && b <= n) { if (flag) a += b; else

2020-06-19 17:05:44

Codeforces Round #650 (Div. 3)

A. Short Substrings先输出首尾,然后中间的隔一个输出一个。AC代码:int main(){ int T; sd(T); while (T--) { string a, b; cin >> b; int len = b.size(); printf("%c", b[0]); for (int i = 1; i < len - 1; i += 2) { printf("%c", b[i]); } printf("%c\n"

2020-06-17 14:48:52

Codeforces Round #649 (Div. 2)

A. XXXXXxxx 倍数-非 xxx倍数 = 非 xxx 倍数,知道这个就很好做了,先求全部的和,然后找到首尾最近的那个不是 xxx 倍数 的位置减去就行。AC代码:const int N = 2e5 + 50;int n, m, x;int a[N];ll sum; int main(){ int t; sd(t); while (t--) { sdd(n, x); sum = 0; rep(i, 1, n) { sd(a[i]); sum +=

2020-06-14 09:08:24

Educational Codeforces Round 89 (Div. 2)

A. Shovels and Swords讨论一下大小。AC代码:int n, m, k; int main(){ int t; sd(t); while (t--) { sdd(n, m); int ans = 0; if (n > m) swap(n, m); if (2 * n <= m) ans = n; else { k = m - n; ans += k; m -= 2 * k; n -= k; a

2020-06-12 10:29:09

Codeforces Round #648 (Div. 2)

A. Matrix Game先统计可以填的行数和列数,每次填行数和列数都会减小 111 所以只需要判断行数和列数最小值的奇偶性即可。AC代码:int n, m, k;bool r[110], c[110];int main(){ int T; sd(T); while (T--) { sdd(n, m); mem(r, 0); mem(c, 0); rep(i, 1, n) { rep(j, 1, m) { int x; sd(x);

2020-06-08 10:33:44

牛客算法周周练9 D 石子游戏

题意:nnn 个数字中,其中有 eveneveneven 个偶数。将一个奇数 xxx 分成两个正整数,可以操作 x2\frac{x}{2}2x​ 次,得到 x2\frac{x}{2}2x​ 个偶数和 111 个 111,将操作次数计入 cntcntcnt。此时,已操作 cntcntcnt 次,且有 even+cnteven + cnteven+cnt 个偶数,n−evenn - evenn−even 个 111,111 已不可操作。合并 even+cnteven + cnteven+cnt 个偶数.

2020-06-07 09:59:21

Codeforces Round #647 (Div. 2)

A. Johnny and Ancient Computer模拟判断。AC代码:int main(){ int t; sd(t); while (t--) { ll n, m; sldd(n, m); if (n == m) { puts("0"); continue; } ll ans = 0; if (n < m) swap(n, m); ll res = n / m; if (n % m != 0 || res & 1

2020-06-05 11:02:00

求114514^n的因子和mod 19260817

求 114514n114514^n114514n 的因子和 mod19260817mod 19260817mod19260817,192608171926081719260817 是质数,114514114514114514 的质因子是 2,31,18472,31,18472,31,1847。2,12 ,12,131,131 ,131,11847,11847 ,11847,1114514114514114514 的因子和为 s(2)∗s(31)∗s(1847)=3∗32∗1845=177120‬s(

2020-06-04 17:06:45

“科林明伦杯”哈尔滨理工大学第十届程序设计竞赛

A 点对最大值B 减成一每个都先减去最小的那个,然后选择没有变成 000 的区间再都减去这个区间的最小值。这个过程其实就是求每个元素之间的差分和。AC代码;const int N = 1e6 + 50;int n, m;int a[N]; int main(){ int t; sd(t); while (t--) { sd(n); ll ans = 0; rep(i, 1, n) {

2020-06-01 16:46:18

Codeforces Round 646 (Div. 2)

A Odd Selection这个 aaa 一开始想的分类讨论然后没有考虑 xxx 的奇偶,其实 nnn 不大,直接枚举奇数的个数就行。AC代码:const int N = 5e5 + 50;int n, m, k;int a[N]; int main(){ int T; sd(T); while (T--) { sdd(n, m); rep(i, 1, n) sd(a[i]); int e = 0, o = 0; rep(i, 1, n) { if

2020-06-01 12:57:53

Codeforces 1359 E. Modular Stability

题意:给出 nnn 和 kkk ,要求在 [1,n][1, n][1,n] 中找出不同的 kkk 个数,使得有规律,所有 aia_iai​ 必须能被最小值 a1a_1a1​ 整除。只要枚举 a1a_1a1​ 的值,然后计算组合数就行了。AC代码:const int N = 5e5 + 50;int n, k;const int mod = 998244353;int F[N], Finv[N], inv[N]; //F是阶乘,Finv是逆元的阶乘void init(){ inv[1.

2020-05-29 17:00:53

Codeforces 1359 D. Yet Another Yet Another Task

题意:给一个的数组,,求连续的一段区间内,求数组元素总和减去区间内数组的最大值的最大值。确定区间最值为 kkk ,然后找到最大连续子段和求最值即可。AC代码:const int N = 1e6 + 50;int n, m;int a[N];int main(){ int T; sd(n); rep(i, 1, n) sd(a[i]); int ans = 0; rep(k, 1, 30) { int sum = 0; rep(i, 1, n) { if .

2020-05-29 16:36:36

Codeforces 1359 C. Mixing Water(二分)

题意:有一个无限大的容器。你轮流进行如下操作:倒一杯热水进去、倒一杯冷水进去。以此类推。(热水温度是 hhh ,冷水温度是 ccc),容器中的水的温度等于倒进去的水的温度总和/倒水的次数。问你需要进行多少次操作,水的温度才能最接近温度t。设倒进冷水的杯数为 xxx ,热水的杯数为 x+1x+1x+1 。然后二分杯数,如果 (h∗(mid+1)+c∗mid)/(2.0∗mid+1)>t(h * (mid + 1) + c * mid) / (2.0 * mid + 1) > t(h∗(mi.

2020-05-29 16:08:09

Codeforces 1358 D. The Best Vacation(二分)

题意:一种新的纪年方式,一年有 nnn 个月,每个月有 did_idi​ 天,没有闰年。计算某一天的值的方式为该天在该月中是第几天。连续选择 xxx 天,要求这 xxx 天得到的值最大。最优解的区间的右端点一定一定是某个月的月末,枚举每个月的月末,二分查找区间左端点即可。AC代码:const int N = 1e6 + 50;ll n, m, x;ll a[N], s[N], sum[N];int main(){ int t; sldd(n, x); s[0] = 0; sum[..

2020-05-27 22:03:03

Codeforces 1358 C. Celex Update

题意:一个矩形内有多个方格,每个方格都按照顺序填写了一些数。给两个坐标,求这两个坐标间路径经过的数字和不同的路线总数。可以看出比如要从 111 走到 181818 ,这两种走法 1,2,4,7,12,181,2,4,7,12,181,2,4,7,12,18 和 1,2,4,8,12,181,2,4,8,12,181,2,4,8,12,18 第二个比第一个多了 111 ,说明一旦出现类似 4,7,124,7,124,7,12 这样的上三角形拐角,我们可以让它拐下来变成 4,8,124,8,124,8,..

2020-05-27 21:35:19

Codeforces 1360 G. A/B Matrix

题意;找出一个 n∗mn*mn∗m 的矩阵,要求每一行严格存在 aaa 个 111,每一列严格存在 bbb 个 111,其余部分均为 000 。就是要填充 n∗an*an∗a 或 b∗mb*mb∗m 个 111 ,所以只要 n∗a==b∗mn*a == b*mn∗a==b∗m 成立,则一定存在答案。看几组就能发现规律。3∗63*63∗6 的矩阵中a=2,b=1a=2,b=1a=2,b=1则构造出了矩阵1100001100001100000011000011000011000000110..

2020-05-26 16:42:41

查看更多

勋章 我的勋章
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。