Gym 101243.C - Desktop(构造)
2017-10-11 22:11
405 查看
题意:用 2×2 的图标铺满 H×W 的桌面,要求可以重叠(后放入的图标可以部分遮盖原有图标),但每个图标必须至少露出面积为 2 ,同时要求图标的顶点必须落在整数坐标上。
思路:发现,这个图,在h为偶数的时候,可以通过(详见代码)的方式构造出答案。那么w为偶数的时候同理。可是我们要处理一个w和h均为奇数的情况,此时我们需要在h或者w的最后一行/列上铺一整条,然后就可以变成h或者w为偶数的情况了,就能像前面的构造方法一样去构造答案了。
思路:发现,这个图,在h为偶数的时候,可以通过(详见代码)的方式构造出答案。那么w为偶数的时候同理。可是我们要处理一个w和h均为奇数的情况,此时我们需要在h或者w的最后一行/列上铺一整条,然后就可以变成h或者w为偶数的情况了,就能像前面的构造方法一样去构造答案了。
#include <bits/stdc++.h> using namespace std; vector<pair<int, int>>vec; int main() { freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); int h, w; scanf("%d%d", &h, &w); if(h < 2 || w < 2) puts("0"); else { if(h % 2 == 1 && w % 2 == 1) { for(int i = 1; i + 1 <= w; i += 2) vec.push_back({h - 1, i}); h--; //等价于 h % 2 == 0 } int a, b; if(h % 2 == 0) { for(int i = 1; i + 1 <= h; i += 2) { for(int j = 1; j + 2 <= w; j ++) { vec.push_back({i, j}); } } for(int i = 1; i + 1 <= h; i++) vec.push_back({i, w-1}); } else { for(int i = 1; i + 1 <= w; i += 2) { for(int j = 1; j + 2 <= h; j ++) { vec.push_back({j, i}); } } for(int i = 1; i + 1 <= w; i++) vec.push_back({h-1, i}); } printf("%d\n", vec.size()); for(auto o : vec) printf("%d %d\n", o.first, o.second); } return 0; }
相关文章推荐
- Codeforces gym 101243 C - Desktop
- [构造] Codeforces Gym 100553 NEERC 14 E. Epic Win!
- Gym-101630C:Connections(生成树&构造)
- Codeforces gym 101243 E - Cupcakes
- Gym 101243.E - Cupcakes(思维题+正确性确切证明方式?)
- Codeforces Gym 100187K K. Perpetuum Mobile 构造
- GYM 100488 B.Impossible to Guess(构造)
- Gym - 101243H Non-random numbers【构造+数学】
- [构造 随机乱搞] Codeforces Gym 100608 ASC 47 E. Elegant Square
- GYM 100801 H.Hash Code Hacker(构造)
- Codeforces Gym 101142 J. Java2016 (构造)
- NEERC 2016 Central Subregional Contest Editorial (Gym 101243)
- GYM 101243 F.Vitamins【思维+并查集】
- Gym 101243.I - Land Division Gym - 101243I(计算几何 切割凸包)
- Codeforces Gym 100342H Problem H. Hard Test 构造题,卡迪杰斯特拉
- Codeforces Gym 100425H H - Football Bets 构造
- GYM 101173 L.Lost Logic(构造)
- [可图性判定 Havel-Hakimi定理 构造] Codeforces Gym 100269 NEERC 13 Northern K. Kids in a Friendly Class
- Gym - 100513B:Colored Blankets (构造)(存疑)
- GYM 101243 J. Architect of Your Own Fortune【二分匹配】