首页 > 编程语言 >2023牛客寒假算法基础集训营1

2023牛客寒假算法基础集训营1

时间:2023-01-16 22:47:56浏览次数:60  
标签:std include 1.0 int cin 牛客 2023 using 集训营

2023牛客寒假算法基础集训营1

https://ac.nowcoder.com/acm/contest/46800
过了7题,写一半没撑住去睡觉了。
官方难度预期:

果然我还是很菜哇qaq

A - World Final? World Cup! (I)

模拟

#include <bits/stdc++.h>

using namespace std;

void solve() {
    string s;
    cin >> s;
    s = ' ' + s;
    int cnt1 = 0, cnt2 = 0;
    for (int i = 1; i <= 10; i++) {
        if (i & 1)    cnt1 += s[i] == '1';
        else    cnt2 += s[i] == '1';
        if (cnt1 == cnt2)    continue;
        int dx = abs(cnt1 - cnt2), add = (10 - i) / 2;
        if (i & 1) {
            if (cnt2 < cnt1)    add ++;
        }
        if (add < dx) {
            cout << i << endl;
            return;
        }
    }
    //cout << cnt1 << ' ' << cnt2 << endl;
    cout << -1 << endl;
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
}

B - World Final? World Cup! (II)

C - 现在是,学术时间 (I)

贪心。全部放到一个人身上

#include <bits/stdc++.h>

using namespace std;

void solve() {
    int n, cnt = 0;
    cin >> n;
    while (n --) {
        int x;
        cin >> x;
        if (x)  cnt++;
    }
    cout << cnt << endl;
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
}

D - 现在是,学术时间 (II)

贪心构造,画图模拟点在内部和在外部的情况进行模拟。

#include <bits/stdc++.h>

using namespace std;
double ans;

int main() {
    int t;
    cin >> t;
    while (t --) {
        int x, y, a, b;
        cin >> x >> y >> a >> b;
        if (a >= x && b >= y)    ans = 1.0 * x * y / (1.0 * a * b);
        else if (a >= x) {
            double j1 = 1.0 * x * b, j2 = 1.0 * x * (y - b), s1 = 1.0 * x * y + 1.0 * b * (a - x), s2 = 1.0 * x * y + 1.0 * (y - b) * (a - x);
            ans = max (j1 / s1, j2 / s2);
        }
        else if (b >= y) {
            double j1 = 1.0 * a * y, j2 = 1.0 * (x - a) * y, s1 = 1.0 * x * y + 1.0 * a * (b - y), s2 = 1.0 * x * y + 1.0 * (x - a) * (b - y);
            //cout << j1 << ' ' << j2 << ' ' << sum << endl;
            ans = max (j1 / s1, j2 / s2);
        }
        else {
            double s1 = 1.0 * a * b, s2 = 1.0 * (x - a) * b, s3 = 1.0 * a * (y - b), s4 = 1.0 * (x - a) * (y - b);
            ans = max ({s1, s2, s3, s4}) / (1.0 * x * y);
        }
        cout << fixed << setprecision (6) << ans << endl;
    }
}

E - 鸡算几何

F - 鸡玩炸蛋人

G - 鸡格线

H - 本题主要考察了DFS

贪心。

#include <bits/stdc++.h>

using namespace std;

void solve() {
    int n;
    cin >> n;
    int a[4] = {0};
    for (int i = 1; i < n * n; i++) {
        string s;
        cin >> s;
        for (int j = 0; j < 4; j++) { //0,2  1,3
            if (s[j] == '0')    continue;
            if (s[j] == '1')    a[j] ++;
            else    a[(j + 2) % 4] --;
        }
    }
    //for (int i = 0; i < 4; i++)     cout << a[i] << ' ';cout << endl;
    int ans = 0;
    for (int i = 0; i < 4; i++)     ans += a[i];
    cout << 10 + ans << endl;
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
}

I - 本题也主要考察了DFS

J - 本题竟也主要考察了DFS

K - 本题主要考察了dp

贪心绑定 \(001\),查看剩余即可

#include <bits/stdc++.h>

using namespace std;
int n, m;

void solve() {
    cin >> n >> m;
    if (n - m < 2) {
        cout << max(0, n - 2) << endl;
        return ;
    }
    int cnt = (n - m) / 2 + 1;
    cout << max(0, m - cnt) << endl;
}

int main() {
    solve();
}

L - 本题主要考察了运气

如题。

#include<bits/stdc++.h>

using namespace std;

int main () {
    cout << 32;
}

M - 本题主要考察了找规律

线性dp。f[i][j]: 放完前i个人剩下j个

#include <bits/stdc++.h>

using namespace std;
const int N = 505;
double f[N][N], ans;

int main() {
    int n, m;
    cin >> n >> m;

    for (int i = 1; i <= n; i++) {
        for (int j = 0; j <= m; j++) { //还剩j个
            for (int k = 0; k <= j; k++) { //这个人拿了k个
                if (j)    f[i][j] = max (f[i][j], f[i-1][j-k] + 1.0 * k / j);
            }
            ans = max (ans, f[i][j]);
        }
    }
    cout << fixed << setprecision (7) << ans;
}

//f[i][j]: 放完前i个人剩下j个

标签:std,include,1.0,int,cin,牛客,2023,using,集训营
From: https://www.cnblogs.com/CTing/p/17056444.html

相关文章

  • 2023年新年第一份博客
    2023年新年第一封博客,对今年的博客做一个大概的规划:技术类:Python计算机网络软件测试理论见闻类:需要去阅读一些经典的书籍:大话存储、人月神话等其他未完待......
  • 2023.1.15
    本周总结本周主要是还是了解图论相关的一些算法,补了一下组合计数专题。大主题图论,数论小专题二分图、欧拉路径,欧拉回路组合计数题目完成情况每个专题配了一到两道......
  • 2023牛客寒假算法基础集训营1 A题
    原题链接#include<bits/stdc++.h>usingnamespacestd;intmain(){intcnt1,cnt2,n,flag=0,a,b;cin>>n;stringstring1;while(n--){cnt1=c......
  • 53rd 2023/1/16 平衡树学习总结
    好久没打总结了,差不多有\(\frac16\)年,是一大失误,以后会继续坚持数据结构介绍首先,架构是一颗二叉搜索树即中序遍历为递增or递减序左子树小于根节点小于右子树请自......
  • 2023.1.16[模板] 二次剩余
    2023.1.16二次剩余问题叙述给出N,p,求解方程$x^2\equivN$(\(modp\))且保证p是奇素数。算法流程解的数量首先,探究$x^2\equivN$这个方程解的数量,假设我们......
  • 2023年01月16日训练日志
    P7453我终于过力线段树维护矩阵区间和的大卡常师srds感觉这题不卡常造屎山的过程不尽顺利但是终究还是造出来了事实告诉我们,模板常打常新因为后面的那几个20pts都是......
  • 2023.1.16周报
    本周总结:《算法竞赛》5.1、5.2,5.5、5.6,《算法竞赛进阶指南》0x53、0x54。大方向:动态规划小专题:区间DP、树形DP题目完成情况:div2、abc各一场。P2015(树形DP)、P1352......
  • 2023.1.15/16 日寄
    2023.1.15日寄一言在现实断裂的地方,梦,汇成了海。——顾城昨日复习内容:组合数学「APIO2016」划艇题意\(~~~~\)\(n\)个位置,每个位置有取值区间,对于取值了的位置......
  • 2023.1.16训练日志
    AtCoderBeginnerContest285成绩报告\(AC:T1,\T2,\T3,\T4\quad1000pts\)\(rk2122,\+59\)P1280尼克的任务这道题标签是\(DP\),但是按照标签写题显得没有挑战......
  • 2023.1.9周报
    2023.1.9周报本周总结本周复习了树的直径,最近公共祖先,树上差分和前缀和和tarjan求scc等内容,学习了0/1分数规划,负环,差分约束系统。大主题图论小专题树的直径,最近公共......