首页 > 其他分享 >11.24 周日

11.24 周日

时间:2024-11-25 10:57:29浏览次数:7  
标签:cout min int res long 11.24 周日 define

codeforces
Q1. 1100 给定01字符串a,b,长度n,n-1,遍历b每次任意选择a中a[i]!=a[i+1],将a[i]a[i+1]替换为b[i],长度减一,问是否能完成n-1次操作。
Q2. 1300 给定n,是否能构造出长度为n的序列,其中每个元素出现>1次且任意相同元素的距离为平方数。
Q3. 1500 给定一棵以1为根的树,可进行任意次操作:选择有子节点的节点p,w[p]++,子树的每个元素w--。问根节点的最大值。

A1. 17min A2. 10min-24min A3. 30min-38min
A1. 结论:发现b[i]每次操作会减少a中(b[i]-'0')^1的数量,故操作时只需要判断是否为0即可。
A2. 构造:n为偶数一定可以:11223344...,n为奇数时需要一个数出现3次即可,即需要满足:d1,d2,d1+d2均为平方数。
               观察平方数发现:1 4 9 16 25 (9+16=25) 故构造前缀:1, 2, 2, 3, 3, 4, 4, 5, 5, 1, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 13, 12, 12, 1, 13。
A3. 树形dp:设min为子树的最小值,如果min>w[u],dp[u]=w[u]+min>>1,否则dp[u]=w[u]; 除此之外如果u==1,dp[1]=w[1]+min;

牛客周赛 Round 69
B. long long格式化输入%d wa一发
C. 空间反射
D. 爆搜 读错题意调一个小时 dfs/数位状压 爆搜每个子方案选不选,判断是否冲突,记录最优方案。
QE. 给定一数组,将其分为3个连续子数组,每个子数组和相等并至少有一个正数,求方案数。
AE. ...

A1.

#include <bits/stdc++.h>
// #define int long long //
#define endl '\n' //
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
const int mod = 998244353;
const int N = 10 + 5e5;
void _();
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t = 1;
    cin >> t;
    while (t--)
        _();
    return 0;
}

//  17min
void _()
{
    int n;
    cin >> n;
    string a;
    string b;
    cin >> a >> b;
    int cnt_a[2] = {};
    for (auto v : a)
        cnt_a[v - '0']++;
    int f = 1;
    if (!cnt_a[0] || !cnt_a[1])
        f = 0;
    else
    {
        for (int i = 0; i < b.size() - 1; i++)
        {
            auto v = b[i];
            int t = (v - '0') ^ 1;
            cnt_a[t]--;
            if (!cnt_a[t])
                f = 0;
        }
    }
    cout << (f ? "YES" : "NO") << endl;
}

A2.

#include <bits/stdc++.h>
// #define int long long //
#define endl '\n' //
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
const int mod = 998244353;
const int N = 10 + 5e5;
void _();
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t = 1;
    cin >> t;
    while (t--)
        _();
    return 0;
}

//  10min 24min
void _()
{
    int n;
    cin >> n;
    if (n & 1 && n < 27)
    {
        cout << -1 << endl;
        return;
    }

    if (n & 1)
    {
        vector<int> res{0, 1, 2, 2, 3, 3, 4, 4, 5, 5, 1, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 13, 12, 12, 1, 13};
        for (int i = 28; i <= n; i++)
            res.push_back(i >> 1);
        for (int i = 1; i <= n; i++)
            cout << res[i] << ' ';
    }
    else
        for (int i = 1; i <= n >> 1; i++)
            cout << i << ' ' << i << ' ';
    cout << endl;
}

A3.

#include <bits/stdc++.h>
#define int long long //
#define endl '\n'     // 交互/调试 关
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
void _();
signed main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    int T = 1;
    cin >> T;
    while (T--)
        _();
    return 0;
}

//  30min  38min
void _()
{
    int n;
    cin >> n;
    vector<int> w(n + 1);
    for (int i = 1; i <= n; i++)
        cin >> w[i];
    vector<vector<int>> e(n + 1);
    for (int i = 2; i <= n; i++)
    {
        int p;
        cin >> p;
        e[p].push_back(i);
    }
    function<int(int)> dp = [&](int u)
    {
        int min_w = 1e18;
        int res = w[u];
        for (auto v : e[u])
            min_w = min(min_w, dp(v));
        if (min_w == (int)1e18)
            return res; // leaf
        if (u == 1)
            return res + min_w;
        if (res < min_w)
            res = res + min_w >> 1;
        else
            res = min_w;
        return res;
    };
    cout << dp(1) << endl;
}

标签:cout,min,int,res,long,11.24,周日,define
From: https://www.cnblogs.com/jkkk/p/18566094

相关文章

  • Java学习笔记——2024.11.24
    2024.11.24一、快速入门1.小需求//Hello.javapublicclassHello{publicstaticvoidmain(String[]args){System.out.println("hello,world~");}}=>javacHello.java//如果有中文注释要保证java文件的编码正确(控制台只认gbk)=>javaHell......
  • 2024.11.24~2024.11.28
    2024.11.24开心的周末(可能是写博客的时候比较开心吧,嘻嘻)上午刷了一套cf,在3h30min刷完了下午去打了一会乒乓球,回来时发现shr已经讲了10分钟的课了(尴尬.png)这周将扫描线,虽然说这个机房除了我以外还有不会的吗?(呃),但是起码没像讲平衡树那样一个字也听不懂的的程度了发现扫描线也没......
  • 2024.11.24 鲜花
    一些大概有用的东西hello(bpm)2024翻洛谷科技·工程翻到的,大概有点用。大量参考洛谷日报。负数下标数组int_f[N],*constf=_f+(N>>1);不解释。valarray挺强的,但常数也不小。定义类似vector,但是是固定长,可以用.resize(n,t=T())重设大小,但是会清空。类似bitset,......
  • 11.24
    软件设计                 石家庄铁道大学信息学院 实验21:观察者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解观察者模式的动机,掌握该模式的结构;2、能够利用观察者模式解决实际问题。 [实验任务一]:股票提醒当股票的价格上涨或......
  • 第二周周日9.8学习总结
    vj2https://vjudge.net/contest/651666#overviewhttps://www.cnblogs.com/Hamine/p/16661610.htmlC-ExpressMailTaking#include<cstdio>#include<cstring>#include<algorithm>usingnamespacestd;typedeflonglongll;constintmaxn=200......
  • 开学第一周9.1周日学习日记
    算法cf1989ABCDhttps://codeforces.com/contest/1989B最长公共子序列 //相当于枚举以b[i]为起点遍历a的最长公共子序列 //因为是子序列所以abacccab即使后面先取了第一个a也不影响最长长度#include<bits/stdc++.h>usingnamespacestd;voidsolve() { stringa......
  • vue3 - 最新详细实现 “日历课程表“ 上课时间表功能组件,教务系统专用老师排课表插件
    效果图在vue3、nuxt3项目开发中,详解实现学生每周“动态课程表(日历表展现)”功能实现,对学期的每周课程进行排课和准备工作,可自由切换本月的每周上课表情况、也可通过日期范围选择器进行筛选指定周的教学排班表、相同的课成可以合并(可不开启),课表数据结构支持调用后端服......
  • 不死鸟的骄傲,红钻的荣耀,周日106,谁能成为日职的超级巨星?比分推荐
    周日106日职联赛将迎来一场备受瞩目的比赛,京都不死鸟将迎战浦和红钻。这场比赛将是两支球队之间的一场激烈对决,也是球迷们期待已久的一场精彩比赛。京都不死鸟作为主队,将在主场迎战来访的浦和红钻。这场比赛对于京都不死鸟来说具有重要意义,他们将努力争取取得胜利,为自己的球迷......
  • 第十六周周日(梦断代码)
    技术挑战在书中,罗森伯格详细描述了Chandler团队在技术层面上遇到的各种挑战。从选择合适的编程语言和开发工具,到处理复杂的架构设计和性能优化,每一个决策都充满了困难和不确定性。技术难题往往不是单一的,而是交织在一起,形成了一个个复杂的谜题。Chandler项目的开发过程,反映了软件......
  • 周日下 5.19
    1.斐波那契数列,变量版,变量覆盖a=1,b=1;for(inti=1;i<=n;i++){cout<<a+b<<””a=b;b=c}2.进击的奶牛前置版:变量覆盖cnt=1;pre=a[1]; for(inti=2;i<=n;i++){ if(a[i]-pre>=mid){ cnt++,pre=a[i]; } }3.分段数列:变量版,数......