SRM 608 T1 && T2
来源:互联网 发布:mac的扑克游戏在哪里 编辑:程序博客网 时间:2024/04/30 01:39
T1:
题目大意:
有n个盒子,第i个盒子里的糖果数量为[Li,Ri],且所有盒子的糖果数量总和为C。现在要选出最少的盒子,使得这些盒子里的糖果数量总和不会小于X。
基本思路:
假设我们选择了盒子集合S。则里面糖果数量至少为 T=max(sigma(i 属于S)Li, C-sigma(i不属于S)Ri)。我们的目标是T>= X且|S|最小。所以可以把sigma(I 属于S)Li,以及C-sigma(i不属于S)Ri单独考虑。这只要排个序就可以了。
#include<iostream>#include<cstdio>#include<cstring>#include<vector>#include<algorithm>#include<cstdlib>#include<ctime>using namespace std;int cmp(const int &a,const int &b){return a>b;}class MysticAndCandies{public:int minBoxes(int C, int X, vector <int> low, vector <int> high){int n=high.size();sort(low.begin(),low.end(),cmp);sort(high.begin(),high.end());int ans1=n,ans2=n;for (int i=0,t=0; i<n; ++i){t+=low[i];if (t>=X) {ans1=i+1;break;}}for (int i=0,t=0; i<n; ++i){t+=high[i];if (C-t>=X){ans2=n-i-1;}}return min(ans1,ans2);}};
题目大意:
给定一张有向图,没有自环和重边。F(L)代表长度为L的路径总数,求最小的K使得当L趋近于无穷时,F(L)与L^K同阶。无解输出-1。
基本思路:如果图内没有环,则K一定为0。如果图内有一个强联通分量,且不是个简单环,则方案一定是指数级别的,所以无解。剩下的情况就是一些简单环之间通过边相连,如果把简单环当作点,把环之间的可达关系当作边,则就相当于是一张拓扑图。如果一条路径经过了C个简单环,则在分配在每个环上饶的圈数的方案和L^(C-1)同阶。由于我们只需要考虑同阶,所以简单环构成的拓扑图上的最长路C-1就是所求的K。
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>using namespace std;bool f[55][55];int parent[55], size_n[55],size_m[55] ;int find(int x) { if (parent[x] != x) parent[x] = find(parent[x]); return parent[x];}int dp[55];int n;int dfs(int x) { if (dp[x]) return dp[x]; int &ans = dp[x]; ans = 0; for (int j = 0; j < n; ++j)if (j != x && find(j) == j && f[j][x] && size_n[j] > 1) ans = max(ans, dfs(j)); return ans = ans + 1;}class BigO {public: int minK(vector <string> graph) {n = graph.size();for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j)f[i][j] = (graph[i][j] == 'Y');for (int i = 0; i < n; ++i) graph[i][i] = 1;for (int k = 0; k < n; ++k) for (int i = 0; i < n; ++i)for (int j = 0; j < n; ++j) f[i][j] |= f[i][k] & f[k][j];for (int i = 0; i < n; ++i) parent[i] = i;for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j)if (f[i][j] && f[j][i]) parent[find(i)] = find(j);for (int i = 0; i < n; ++i) for (int j = 0; j < n; ++j)if (graph[i][j] == 'Y' && find(i) == find(j)) ++size_m[find(i)];for (int i = 0; i < n; ++i) ++size_n[find(i)];for (int i = 0; i < n; ++i) if (size_m[find(i)] != size_n[find(i)] && size_n[find(i)] != 1) { return -1; }memset(dp, 0, sizeof(dp));for (int i = 0; i < n; ++i) if (find(i) == i && size_n[i] > 1)dfs(i);int ans = 1;for (int i = 0; i < n; ++i) ans = max(ans, dp[i]);return ans - 1; }};
0 0
- SRM 608 T1 && T2
- srm 526 T1 && T2
- SRM 605 T1 T2 T3
- srm527 T1 && T2
- sm 528 T1 && T2
- BeanUtils<T1, T2> beanToBean
- 【队内胡策 11.1】 T1 T2
- 【队内胡策 11.3】 T1 T2
- srm 626 T2
- srm 619 T2
- srm 539 T2
- 磁共振中的T1, T2 和 T2*的原理和区别
- Func<T1, T2, TResult> 泛型委托
- 磁共振T1 T2 T1WI T2WI含义
- Dictionary<T1,T2>和Hashtable的异同
- 【JLOI2013】T1、T2、T3 Bzoj3190~3192
- SIP协议中的T1和T2
- NOIP 2013 day 2 t1 t2
- Office中字体大小与像素值对应关系
- 文件拷贝效率问题
- 浅析MFC框架
- 关于TabHost选项卡标签图标始不出现问题.
- VS 一些你可能忽略但是用着很方便的快捷键
- SRM 608 T1 && T2
- jQuery插件开发全解析
- HTTP状态代码
- Visual Studio “类视图”和“对象浏览器”图标含义
- Java基础——I/O
- Spring整合JMS——基于ActiveMQ实现
- 抽奖,a概率0.2,b概率0.3,a,b都至少有一个的期望
- PowerManager屏幕休眠断网与距离感应器P-Sensor
- 学以致用--链式结构处理android耗时请求