2015 多校第三场
2015-07-29 19:50
344 查看
1002
求max(f(a),f(b)), f为不重复的素因子个数, 在数据要求以内 , 每个数最多有7个,可以打表。
View Code
求max(f(a),f(b)), f为不重复的素因子个数, 在数据要求以内 , 每个数最多有7个,可以打表。
/*Author :usedrose */ /*Created Time :2015/7/28 11:55:10*/ /*File Name :2.cpp*/ #include <cstdio> #include <iostream> #include <algorithm> #include <sstream> #include <cstdlib> #include <cstring> #include <climits> #include <vector> #include <string> #include <ctime> #include <cmath> #include <deque> #include <queue> #include <stack> #include <set> #include <map> #define INF 0x3f3f3f3f #define eps 1e-8 #define pi acos(-1.0) #define MAXN 110 #define OK cout << "ok" << endl; #define o(a) cout << #a << " = " << a << endl #define o1(a,b) cout << #a << " = " << a << " " << #b << " = " << b << endl using namespace std; typedef long long LL; vector<int> G[MAXN]; int n, k; int du[MAXN]; int num[MAXN]; int vis[MAXN]; int main() { while (cin >> n >> k) { for (int i = 1;i <= n; ++ i) { G[i].clear(); num[i] = 1, du[i] = 0, vis[i] = 0; } int x, y; for (int i = 0;i < n-1; ++ i) { cin >> x >> y; G[y].push_back(x); du[x]++; } for (int k = 1;k <= n; ++ k) { for (int i = 1;i <= n; ++ i) { if (du[i] == 0) { for (int j = 0;j < G[i].size(); ++ j) { int v = G[i][j]; du[v]--; num[v] += num[i]; } du[i] = -1; } } } int ans = 0; for (int i = 1; i <= n; ++ i) { if (num[i] - 1 == k) ans++; } cout << ans << endl; } return 0; }
View Code
相关文章推荐
- Sqlserver2012 alwayson部署攻略
- 音乐家演奏乐器
- 对应用程序域的浅显理解
- LBS根据经纬查看附近商家的实现
- uvalive 4992(半平面交+二分)
- 41 - 找出数组中和为sum的 2个数字 | 找出和为sum的连续正整数序列
- IOS的后台的持续定位
- HDOJ 2642 Stars
- 【POJ】1364 King
- POJ 2965 The Pilots Brothers' refrigerator (想法题)
- vs2015安装使用体验
- CFrameWnd的两个函数
- HDOJ 3966 Aragorn's Story
- 快速排序 c++
- hdu 5325 Crazy Bobo (树形dp)
- 关于cassandra vnode的理解-marsyoung.
- 排序算法的稳定性讨论
- 【CodeForces】E. Xenia and Tree(分块 + LCA)
- Trim(),TrimStart(),TrimEnd()用于去除字符串中的特定字符
- 多校第三场 1010 hdu 5325 Crazy Bobo(拓扑排序+树形dp)