FZU-2205 据说题目很水(思维、完全二分图性质避免三元环)
2017-09-03 15:53
330 查看
题意:
给一个N,求构造一个N个点的无向图,保证没有任意三个点相互直接相连,使边数最多。
思路:
可以画几个点去找规律,n==2时ans=1,n==3时ans=2,n>3时,ans
= ans[n-1]+key,key是从第4个开始变化2,2,3,3,4,4,5,5...所以预处理一下,输出答案即可。
还可以利用二分图的性质,对于完全二分图任意加一条边都会导致出现三角形,所以我们使n个点尽量均分到二分图的A、B部,然后求完全二分图的边数[(n/2)*(n-n/2)]就是答案。
代码:
继续加油~
给一个N,求构造一个N个点的无向图,保证没有任意三个点相互直接相连,使边数最多。
思路:
可以画几个点去找规律,n==2时ans=1,n==3时ans=2,n>3时,ans
= ans[n-1]+key,key是从第4个开始变化2,2,3,3,4,4,5,5...所以预处理一下,输出答案即可。
还可以利用二分图的性质,对于完全二分图任意加一条边都会导致出现三角形,所以我们使n个点尽量均分到二分图的A、B部,然后求完全二分图的边数[(n/2)*(n-n/2)]就是答案。
代码:
#include <bits/stdc++.h> using namespace std; int ans[1005]; void init() { ans[2] = 1, ans[3] = 2; int key = 2, cnt = 2; for(int i = 4; i <= 1000; ++i) { ans[i] = ans[i-1]+key, --cnt; if(!cnt) cnt = 2, ++key; } } int main() { int t, n, x; cin >> t; init(); while(t--) { cin >> n; cout << ans << endl; } return 0; } /************************************/ #include <bits/stdc++.h> using namespace std; int main() { int t, n; cin >> t; while(t--) { cin >> n; cout << (n/2)*(n-n/2) << endl; } return 0; }
继续加油~
相关文章推荐
- FZU 2205 据说题目很水(思维题目)
- [FZUOJ - 2205] 据说题目很水(完全二分图边数)
- FZU 2205 据说题目很水
- FZU_2205 据说题目很水
- 据说题目很水 FZU - 2205 -(无三元环最大边数)
- FZU-2205 据说题目很水
- 【FZU 2205】据说题目很水 (无三元环图最大边数)
- FZU2205-据说题目很水
- FZU 2193 So Hard (简单的思维题目)
- FZUOJ 2205 据说题目很水 (无三元环图最大边数)
- FZU 2197 最小花费(思维题目)
- fzu--据说题目很水
- 二分查找的三个版本,据说90%的计算机专家不能在2小时内写出完全正确的二分搜索算法。
- 【fzu 2205 据说题目很水】
- fzu 据说题目很水~~~
- FZU--据说题目很水
- FZU Problem 2140 Forever 0.5(计算几何构造,依旧考查思维)
- 题目1454:Piggy-Bank(完全背包问题)
- 匈牙利哦模板 二分匹配 完全匹配问题
- POJ2976 - Dropping tests - 二分+01分数规划+思维