2020牛客暑期多校训练营(第十场)

2020牛客暑期多校训练营(第十场)(2020.8.10)

A、Permutation

不会做。瞎搞。

搞了三种方法全哇。浩大师1A了。具体方法就是每次乘2乘到循环之后乘个3继续乘2。

#include 
#include 
#include 
#include 
#include 
#pragma warning(disable:4996)
using namespace std;
int a[1000000];
bool f[1000000] = { false };
int main()
{
	int t;
	cin >> t;
	while (t--) {
		fill(a, a + 1000000, 0);
		memset(f, 0, sizeof(f));
		int p,i,k=0;
		a[0] = 1;
		f[1] = true;
		cin >> p;
		for (i = 1; i < p-1; i++) {
			if (!f[a[i - 1] * 2 % p]) {
				a[i] = a[i - 1] * 2 % p;
				f[a[i]] = true;
			}
			else if (!f[a[i - 1] * 3 % p]) {
				a[i] = a[i - 1] * 3 % p;
				f[a[i]] = true;
			}
			else {
				k = 1;
				break;
			}
		}
		if (i == p-1) {
			for (i = 0; i < p-1; i++) {
				cout << a[i] << " ";
			}
			cout << endl;
		}
		else {
			cout << -1 << endl;
		}
	}
}

E、Game

看到题目很容易想到二分。check函数只要从右往左扫一遍,遇到比当前答案高的就累加进cnt中,遇到比答案小的就从cnt里扣。最后看扫完cnt里还有没有多的砖头。

不过这题似乎可以 O ( n ) O(n) O(n)搞出来,所有前缀和平均值下取整的最大值就是答案。

一开始爆int哇了一发。

#include 
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
int n;
bool check(ll m, vector <ll> &a)
{
    ll now = 0;
    for (int i = n; i >= 1; --i)
    {
        if (a[i] > m) now += a[i] - m;
        else if (a[i] < m) now -= min(now, m - a[i]);
    }
    if (now > 0) return 0;
    else return 1;
}
int main()
{
    int t; cin >> t;
    while (t--)
    {
        scanf("%d", &n);
        vector <ll> a(n + 1);
        ll l = 0, r = 0;
        for (int i = 1; i <= n; ++i)
        {
            scanf("%lld", &a[i]);
            r = max(r, a[i]);
        }
        ll ans = l;
        while (l <= r)
        {
            ll mid = l + r >> 1;
            if (check(mid, a)) ans = mid, r = mid - 1;
            else l = mid + 1;
        }
        cout << ans << endl;
    }
    return 0;
}

赛后总结:

G打表找了个规律发现和斐波那契有点关系,之后完全走歪了。原理是无穷递降法,数论已经全部还给hgl了。

A题出题速度太慢。水题尽量在一小时内全部秒掉。

另外就是在交代码时一定要注意数据范围和数组大小有没有改回来。

十场牛客多校至此就全部打完了。之后只剩几场杭电了。

什么,你又问我为什么不写杭电的博客?

因为懒。

另外博客园那边的博客这两天也架好了,不过里面还没有东西。CSDN不能个性化套皮实在是硬伤。

以后一些写得比较烂和散的题解大概会发在CSDN,学习笔记+例题会架在博客园上。博客园主要是防止以后忘记知识点才挂上去的,所以应该会比CSDN这边写得详细很多。

还有一点就是最近开始收集模板了,挂在github上面。

你可能感兴趣的:(2020暑期多校)