摘要:
题目大意:给一个建筑的序列,建筑用高度和宽度描述,找出按高度的LIS和LDS,最长XX子序列的长度按照序列中建筑的宽度和进行计算。 其实就是带权的最长XX子序列问题,原来是按个数计算,每个数权都是1,现在有不同的权重。 1 #include 2 #include 3 using namespace std; 4 #define MAXN 100000 5 6 int h[MAXN], w[MAXN], lis[MAXN], lds[MAXN]; 7 8 int main() 9 {10 #ifdef LOCAL11 freopen("in", "r", 阅读全文
摘要:
题目大意:给一个车辆到达车站的序列(按时间先后),可以对车辆进行以下处理:插在队首、插在队尾或者拒绝进站。车站内的车辆必须按照重量大小从大到小排列,问车站内最多能有多少辆车辆? 假设车i是第一个进站,那么在i后面的车辆如果比i车重,可以插在i的前面,如果比i车轻,可以插在i的后面。这就变成了求以i为起点的最大递增子序列和最大递减子序列了,i首先进站的最大长度为LIS(i)+LDS(i)-1,找出其中的最大值就可以了。 1 #include 2 #include 3 using namespace std; 4 #define MAXN 2010 5 6 int a[MAXN], l... 阅读全文
摘要:
题目大意:一种拦截导弹能拦截多枚导弹,但是它在每次拦截后高度不会再升高,给出导弹的序列,问最多能拦截多少枚导弹? 最长递减子序列问题。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 vector m, lds; 7 8 int main() 9 {10 #ifdef LOCAL11 freopen("in", "r", stdin);12 #endif13 int x, kase = 0;14 while (scanf("%d", &x) != EOF 阅读全文
摘要:
题目大意:给定一种估算Pi的方法:给出一系列随机数,从中任选两个数,这两个数的最大公约数不大于1(互质)的概率为6/(Pi*Pi),然后给出一系列数,据此估算Pi的值。直接模拟就好了。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int gcd(int a, int b) 7 { 8 return b == 0 ? a : gcd(b, a%b); 9 }10 11 int main()12 {13 #ifdef LOCAL14 freopen("in", "r", stdin) 阅读全文