牛客多校第五场

   日期:2020-11-17     浏览:96    评论:0    
核心提示:D-Drop Voicing题意及分析代码(AC)#include<bits/stdc++.h>using namespace std;const int N = 505;int a[2*N],f[2*N];inline int inc_sub(int l, int r) { fill(f+l, f+r, 1); for(int i = l; i < r; i++) { for(int j = l; j < i; j++) { if(a[j] <

D-Drop Voicing

题意及分析

题目大意就是给定了两种操作,求其中一种操作使用的次数。
给定一个任意数字排列,要求最后使其顺序排列,即1,2,3,4…n,两个操作一个是把倒数第二个数放到第一位,第二种操作是把第一个数放到最后一位,连续使用一种操作一次操作。
需要数第一种操作使用次数。

代码(AC)

#include<bits/stdc++.h>
using namespace std;
const int N = 505;
int a[2*N],f[2*N];

inline int inc_sub(int l, int r) { 
	fill(f+l, f+r, 1);
	for(int i = l; i < r; i++) { 
		for(int j = l; j < i; j++) { 
			if(a[j] < a[i]) f[i] = max(f[i], f[j] + 1);
		}
	}
	int m = 0;
	for(int i = l; i < r; i++)
		m = max(m, f[i]);
	return m;
}

int main() { 
	//freopen("./1.in","r",stdin);
	int n;
	scanf("%d",&n);
	for(int i = 1; i <= n; i++) { 
		int t;
		scanf("%d",&t);
		a[i] = a[i+n] = t;
	}
	int ans = 0x3f3f3f3f;
	for(int i = 1; i <= n; i++) { 
		memset(f, 0, sizeof(f));
		ans = min(ans , n - inc_sub(i, i+n));
	}
		
	cout<<ans<<endl;
	return 0;
}

I-Hard Math Problem

题意及分析

答案就是2/3,贴一张图解释,因为是无穷大不存在边界的,所以看中间位置,看边缘位置无法理解的

代码

#include<bits/stdc++.h>
using namespace std;

int main() { 
	printf("0.666667\n");
	return 0;
}

F-DPS

题意与分析

根据给定的数字和公式
输出图案,si决定这个图案的长度,唯一值得注意的点就是向上取整怎么做

代码(AC)

#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 100 + 5;
ll a[N], b[N];

int main() { 
	int n;
	while(scanf("%d",&n) != EOF) { 
		ll m = 0;
		for(int i = 1; i <= n; i++) { 
			scanf("%d", &a[i]);
			m = max(a[i], m);
		}
		for(int i = 1; i <= n; i++)
			b[i] = (50*a[i] + m - 1) / m;//向上取整
		 
		for(int i = 1; i <= n; i++) { //n个数据 
			for(int j = 1; j <= 3; j++) { //分别代表三行 
				if(j == 2)  { 
					for(int k = 1; k <= b[i]+2; k++) { 
						if(k == 1 || k == b[i]+2)
							cout<<"|";
						else if(a[i] == m && k == b[i] + 1)
							cout<<"*";
						else
							cout<<" ";
					}
					cout<<a[i]<<endl;
				}
				else { 
					for(int k = 1; k <= b[i]+2; k++) { 
						if(k == 1 || k == b[i]+2)
							cout<<"+";
						else
							cout<<"-";
					}
					cout<<endl;
				}
			}
		}
		 
	}
	return 0;
}

E-Bogo Sort

题意及分析

说到底就是大数的处理

代码(AC)

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服