UOJ#26. 【IOI2014】Game
来源:互联网 发布:cda数据分析师考试地点 编辑:程序博客网 时间:2024/06/15 06:12
思路:
我的傻逼做法:
首先一个简单的性质是如果你知道一张完全图的连边情况你可以推测出其连通性。
我们考虑怎样才能满足题目条件,通过枚举最后一步我们发现如果对于一条边
所以我们对每个点维护一个并查集,那么对于当前处于两个不同并查集的
另外机房神犇提供的更强做法:
从子问题的角度考虑,那么对于
代码:
#include "game.h" #include<iostream>#include<cstring>#include<string>#define N 1500using namespace std;int f[N + 5],edge[N + 5][N + 5],m,num[N + 5];void initialize(int n){ m = n; for (int i = 0;i < m; ++i) f[i] = i,num[i] = 1; memset(edge,0,sizeof(edge));} inline int find(int x){ return f[x] == x ? x : f[x] = find(f[x]);}inline void unionn(int u,int v){ f[u] = v;}int hasEdge(int u, int v){ int u1 = find(u),v1 = find(v); if (edge[u1][v1] + 1 == num[u1] * num[v1]){ unionn(u1,v1); for (int i = 0;i < m; ++i) edge[v1][i] += edge[u1][i],edge[i][v1] = edge[v1][i]; num[v1] += num[u1]; return 1; } else { edge[u1][v1]++; edge[v1][u1]++; return 0; }}
总结:1.构造的时候可以从子问题的角度考虑,逐步放大问题的规模
2.构造也可以从操作的最后一步考虑
0 0
- UOJ#26. 【IOI2014】Game
- 【UOJ#26.】【IOI2014】Game 交互题,构造
- [UOJ 25][IOI2014]Wall(裸线段树)
- [UOJ 26][IOI 2014]Game(构造题)
- IOI2014题解
- 【IOI2014】【BZOJ4367】holiday假期
- [bzoj4367][IOI2014]holiday假期
- IOI2014 假期(Holiday)
- 【IOI2014】bzoj4367 holiday
- bzoj 4364: [IOI2014]wall砖墙
- bzoj 4364: [IOI2014]wall砖墙
- [BZOJ]4364: [IOI2014]wall砖墙 线段树
- [BZOJ]4364: [IOI2014]wall砖墙 线段树
- bzoj 4364: [IOI2014]wall砖墙 线段树
- [UOJ 118][UOJ Round #8]赴京赶考
- BZOJ 4367 [IOI2014]holiday假期 分治 主席树
- UOJ Round5总结
- 【UOJ Goodbye Jiawu】
- Spring - bean配置-Autowire
- bzoj 4071 [Apio2015]巴邻旁之桥 splay
- CentOS 7 SSH使用证书登录
- cocos2s-x游戏源码测试小白教程,从创建工程到游戏运行起来
- Mina长连接Android使用
- UOJ#26. 【IOI2014】Game
- java开发接口利用http协议传输数据
- HTTP协议概述
- 网站开发流程以及HTML5简介(八)
- MYSQL的安装配置系列问题
- 9. Optimizing and satisficing metrics 优化指标和满足指标(《MACHINE LEARNING YEARNING》翻译)
- input type date 解决移动端显示placeholder.
- SQL 查询当天、本周、本月记录
- Linux随机数nonblocking pool快速初始化