2020 뉴커머스 여름방학 다교 훈련소(6차장)

20583 단어
2020 뉴커머스 여름방학 다교훈련캠프(6차전)(2020.7.27)
B、Binary Vector
제목은 알아보지 못했지만 이번 MVP 호스님은 규칙을 발견했습니다. f(x)=2 x-3 1 2 xf(x-3 1) f(x)={2^ {x}-1\over 2^x} f(x-1) f(x)=2 x2- 1 f(x-3 1).그리고 프로그램을 꺼내면 AC입니다.
#include 
using namespace std;
typedef long long ll;
const int MAXN = 2e7 + 10;
const int MOD = 1e9 + 7;
ll qpow(ll a, ll b)
{
    ll ans = 1; a %= MOD;
    while (b)
    {
        if (b & 1) ans = (ans * a) % MOD;
        a = (a * a) % MOD; b >>= 1;
    }
    return ans;
}
int ans[MAXN];
int main()
{
    ll p = 1, q = qpow(2, MOD - 2), now = 2, inv = q, ori = q;
    for (int i = 1; i <= 2e7; ++i)
    {
        ans[i] = (p * q) % MOD;
        now = (now * 2) % MOD;
        p = (p * (now - 1)) % MOD;
        inv = (inv * ori) % MOD;
        q = (q * inv) % MOD;
    }
    for (int i = 2; i <= 2e7; ++i) ans[i] ^= ans[i - 1];
    int t; cin >> t;
    while (t--)
    {
        int n; scanf("%d", &n);
        printf("%d
"
, ans[n]); } return 0; }

C、Combination of Physics and Maths
문제를 보고 나니 dp 같았는데 결과는 욕심이었다.가능한 한 커야 하기 때문에 ii행의 어떤 원소 jjj에 대해 jj열의 압력을 계산할 때 반드시 그 위의 모든 원소를 더해야 한다.그리고 이 줄의 원소에 대한 압력의 최대치가 바로 이 줄의 최대치이다.(만약에 하나를 취하지 않았다면 두 번째 취하는 원소의 압력은 반드시 첫 번째 원소보다 작고 총 압력은 작아지며 하나를 취하는 것이 더 좋다.)그리고 전체 행렬을 한 번 훑어보면 된다.
#include 
using namespace std;
typedef long long ll;
const int MAXN = 2e2 + 10;
int main()
{
    int t; cin >> t;
    while (t--)
    {
        int n, m; scanf("%d%d", &n, &m);
        int a[MAXN][MAXN];
        for (int i = 1; i <= n; ++i)
            for (int j = 1; j <= m; ++j)
                scanf("%d", &a[i][j]);
        double ans = 0;
        int s[MAXN] = {0};
        for (int i = 1; i <= n; ++i)
        {
            for (int j = 1; j <= m; ++j)
                s[j] += a[i][j], ans = max(ans, (double)s[j] / a[i][j]);
        }
        printf("%.8lf
"
, ans); } return 0; }

E、Easy Construction
이 문제는 호 대사가 제공하였다.
#include
using namespace std;
typedef long long ll;
int main()
{
    ll n, k, i, j;
    cin >> n >> k;
    if(n == 1)
    {
    	cout << 1 << endl;
    }
    else if(((n + 1) * n / 2) % n != k)
    {
        cout << -1 << endl;
    }
    else
    {
        if(k > 0)
        {
        	cout << n << " ";
        	cout << k;
        	for(i = 1; i < k; i++)
            {
            	cout << " " << i << " " << n - i;
        	}
        	cout << endl;
        }
        else
        {
            cout << n;
            for(i = 1; i <= n / 2; i++)
            {
                cout << " " << i << " " << n - i;
            }
        }
        cout << endl;
    }
    return 0;
}

경기 후 요약:
K를 시작하고 틀린 문제를 보다.시합을 반쯤 치고서야 K문제가 무슨 뜻인지 알고 K벌좌를 하기 시작했다.
K가 문제를 잘못 보고 WA를 한 번 보고 기어가서 C를 켰다.욕심쟁이가 생각도 못했어.욕심이 부족해.강화해야 돼.
B번 경전은 법칙을 찾는다.나는 규칙을 찾는 것이 정말 약하다. 모두 동료에게 의지한다~~~%호대사~~데리고 날아간다.규칙적인 문제를 더 찾아서 풀어야 할 것 같아서요.
G문제는 호대사가 또 해법을 생각해 냈지만 쓸 줄 모른다.
요리

좋은 웹페이지 즐겨찾기