applejack

Codeforces Round 662 赛后解题报告

本秂侑毒 提交于 2020-10-25 04:52:22
Codeforces Round 662 赛后解题报告 梦幻开局到1400+的悲惨故事 A. Rainbow Dash, Fluttershy and Chess Coloring 这个题很简单,我们可以画几张图,发现每一次我们染色的最佳方法就是每次往里面多填一圈,并把上一圈给填满。 比如上图就很好地说明了这个过程,大家可以用画一下 \(n=4,n=5,n=6,n=7\) ,就能验证这个命题了,所以一个 \(n\times n\) 的矩阵有 \(\lfloor\frac{n}{2}\rfloor+1\) 圈,所以直接输出即可。 //Don't act like a loser. //You can only use the code for studying or finding mistakes //Or,you'll be punished by Sakyamuni!!! //#pragma GCC optimize("Ofast","-funroll-loops","-fdelete-null-pointer-checks") //#pragma GCC target("ssse3","sse3","sse2","sse","avx2","avx") #include<bits/stdc++.h> #define int long long using namespace

Codeforces Round #662 (Div. 2)

走远了吗. 提交于 2020-08-16 06:22:54
就写了两个题,以为要掉分,结果早上起来发现还上分了(说明wtcl A - Rainbow Dash, Fluttershy and Chess Coloring 无论边长是奇数还是偶数,考虑每次操作最外层的一圈,一个人操作一圈的一般,然后另一个人就能够把这一圈涂满,而且还能继续操作最外圈。每次2人操作后问题变成边长-2的情况。稍微思考一下就可。 # define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) # include <iostream> # include <algorithm> using namespace std ; int n ; int main ( ) { IO ; int T ; cin >> T ; while ( T -- ) { cin >> n ; if ( n & 1 ) cout << ( n - 3 ) / 2 + 2 << endl ; else cout << ( n - 2 ) / 2 + 2 << endl ; } return 0 ; } B - Applejack and Storages 统计4的倍数和2的倍数。其中既是4的倍速也是2的倍数只看做4的倍数。 # define IO ios::sync_with_stdio(false);cin.tie();cout

B. Applejack and Storages(模拟)

左心房为你撑大大i 提交于 2020-08-12 13:44:19
有 n 条边,给出对应的长度,有 m 次询问,每次会 ‘+’:添加一根木棒,或 ‘-’:减少一根木棒,问是否可以组成一个正方形和一个长方形,这两个四边形不可以重合,减少时,保证一定拥有这种长度的木棒 一开始以为是到水题,开始暴力,期间穿插了能想到的优化,但 T 到我怀疑人生后,发觉这个题不大对头,开始换思路 超时代码: const int N=2e5+5; int n,m,t; int i,j,k; int a[N]; map<int,int> mp; int minn,maxx; int go() { int f4=0; int f2=0; for(int i=minn;i<=maxx;i++){ if(mp[i]>=4){ if(mp[i]>=6){ int res=mp[i]/4; f4+=res; if(mp[i]-res*4>=2) f2++; } else f4++; } else if(mp[i]>=2) f2++; if(f4 && f2>=2) return 1; if(f4>=2) return 1; } if(f4 && f2>=2) return 1; if(f4>=2) return 1; return 0; } int ans; void print() { if(ans==1) puts("YES"); else puts("NO"); } int

[codeforces 1393B] Applejack and Storages 桶排序套桶排序

风流意气都作罢 提交于 2020-08-09 08:42:00
Codeforces Round #662 (Div. 2) 参与排名人数13194 [codeforces 1393B] Applejack and Storages 桶排序套桶排序 总目录详见 https://blog.csdn.net/mrcrack/article/details/103564004 在线测评地址 https://codeforces.com/contest/1393/problem/B Problem Lang Verdict Time Memory B - Applejack and Storages GNU C++17 Accepted 93 ms 4700 KB 题目大意:用仓库里的木条充当矩形的边(一条边,只能由一个木条充当),要求围成一个正方形(需要4个木条),一个矩形(需要4个木条,这个矩形也可以是正方形)。仓库里的目标可以增加,也可以减少。若能围成,输出YES,若不能,输出NO. 基本思路:统计相同长度的木条数量(第一次桶排序),再对数量进行桶排序(第二次桶排序,详见代码)。针对数量进行讨论(详见代码)。 样例模拟如下: 6 1 1 1 2 1 1 6 + 2 NO cnt[1]=5,长度为1的木条有5根。 cnt[2]=2,长度为2的木条有2根。 num[1]=0,长度雷同数量为1的木条集合有0个。 num[2]=1

Codeforces Round #662 (Div. 2)

六月ゝ 毕业季﹏ 提交于 2020-08-09 08:40:40
A. Rainbow Dash, Fluttershy and Chess Coloring (CF 1393 A) 题目大意 给定一个 \(n\times n\) 的棋盘,要黑白间隔涂色。每次只能选择一些格子涂色,这些格子必须与某些已经涂色的格子相邻,问最小涂色次数。初始时最外围的一圈都可以涂色。 解题思路 开始看样例有种输出n-1的冲动 想象一下涂色情况可知,第一次涂最外围一圈的白色,第二次涂最外围的黑色和第二外围的黑色,第三次涂第二外围的白色和第三外围的白色…… 若n是偶数,则最后是涂一个四个格子的两个颜色,然后还要一次涂另一个颜色,次数是 \(\dfrac{n}{2} + 1\) 若n是奇数,最后一次则是涂一个格子,次数是 \(\lfloor \dfrac{n}{2} \rfloor + 1\) 综上,答案就是 \(\dfrac{n}{2} + 1\) (整除)。 神奇的代码 #include <bits/stdc++.h> using namespace std; typedef long long LL; int main(void) { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int kase; cin>>kase; for (int ii = 1; ii <= kase; ii++) { int n