codeforces 233c Cycles【贪心】
来源:互联网 发布:绩效考核软件 编辑:程序博客网 时间:2024/06/17 15:53
这道题坑了我好几个小时,首先算循环节小于k的全满的状态,在一个节点然后一条边的加上去。例如,K = 5,当K=4的时候是全满的状态,此时只需要添加一个节点和边,使其再产生一个环。通过规律可以知道,因为添加一个节点以前是全满的状态,所以对于一个新增加的节点,第一次添加两条边,干掉一个环,以后每增加一条边,会干掉2、3、4……用计数器记录一下就好。
如果全填满了还不满足,在增加一个节点如此进行,必定可以保证最优解。
#include <map>#include <set>#include <cstdio>#include <cstring>#include <algorithm>#include <queue>#include <iostream>#include <stack>#include <cmath>#include <string>#include <vector>#include <cstdlib>//#include <bits/stdc++.h>//#define LOACL#define space " "using namespace std;typedef long long LL;typedef __int64 Int;typedef pair<int, int> paii;const int INF = 0x3f3f3f3f;const double ESP = 1e-5;const double PI = acos(-1.0);const int MOD = 1e9 + 7;const int MAXN = 100 + 10;int ans[104][104];int main() {int K, temp, t;while (scanf("%d", &K) != EOF) {memset(ans, 0, sizeof(ans));for (int i = 3; i <= 100; i++) {if (i*(i - 1)*(i - 2)/6 >= K) {t = i;temp = i*(i - 1)*(i - 2)/6;break;}}if (temp == K) {for (int i = 0; i < t; i++) {for (int j = 0; j < t; j++) {ans[i][j] = !(i == j);}}}else {K -= (t - 1)*(t - 2)*(t - 3)/6;for (int i = 0; i < t - 1; i++) {for (int j = 0; j < t - 1; j++) {ans[i][j] = !(i == j);}}for (; t <= 100; t++) {int cnt = 1;while (K >= cnt) {if (cnt == 1) {ans[t - 1][0] = ans[t - 1][1] = 1;ans[0][t - 1] = ans[1][t - 1] = 1;}else {for (int i = 0; i < t; i++) {bool flag = false;for (int j = 0; j < t; j++) {if (!ans[i][j] && i != j) {ans[i][j] = ans[j][i] = 1;flag = true; break;}}if (flag) break;}}K -= cnt; cnt++;}if (K == 0) break;}}printf("%d\n", t);for (int i = 0; i < t; i++) {for (int j = 0; j < t; j++) {printf("%d", ans[i][j]);}printf("\n");}}return 0;}
0 0
- codeforces 233c Cycles【贪心】
- 【CodeForces】233C - Cycles(贪心)
- 【codeforces 233C Cycles】+ 思维
- Codeforces-----233C---Cycles模拟
- CodeForces 233C Cycles(思维)
- CodeForces 233 C.Cycles(构造)
- codeforces 232A Cycles 图论 贪心 思维
- Codeforces 233C Cycles(图的三元环)
- Codeforces Round #144 (Div. 2) C. Cycles
- codeforces 232A Cycles (构建图,贪心+模拟)
- CF232A-cycles 构造,贪心
- CodeForces 275C 贪心
- codeforces C. Bits 贪心
- codeforces C. Hometask(贪心)
- Codeforces 449C 贪心
- Codeforces 794C【贪心】
- CodeForces 873C(贪心)
- CodeForces 825C(贪心)
- 453. Minimum Moves to Equal Array Elements
- Foxmail与QQ邮箱关联创建新账户
- struts登陆验证(防止未登录的游客非法访问)
- 数组名作为函数参数以及sizeof用法
- 关于Windows高DPI的一些简单总结
- codeforces 233c Cycles【贪心】
- [NOIP2015]Day1 T2 信息传递
- 自动驾驶的核心技术之四:线控技术
- Spring MVC学习总结(11)——Spring MVC集成Swagger跨域问题
- PHP将数组写入文件
- MySQL的三大引擎:InnoDB、MyISAM和Memory
- netca.rsp详解
- 致每一位奋斗的年轻人
- bzoj3531: [Sdoi2014]旅行