首页 > 其他分享 >SMU Spring 2023 Trial Contest Round 9

SMU Spring 2023 Trial Contest Round 9

时间:2023-04-23 16:11:16浏览次数:45  
标签:ch Contest int Spring SMU read while res getchar

A. Wrong Subtraction

#include <bits/stdc++.h>

using namespace std;

int32_t main() {
    int n, k;
    cin >> n >> k;
    while (k--) {
        if (n % 10 == 0) n /= 10;
        else n--;
    }
    cout << n;
    return 0;
}

B. Two-gram

#include <bits/stdc++.h>

using namespace std;

int32_t main() {
    int n;
    cin >> n;
    string s;
    cin >> s;
    map<string, int> cnt;
    for (int i = 0; i + 1 < n; i++)
        cnt[s.substr(i, 2)]++;
    int val = 0;
    string res = "";
    for (auto [k, v]: cnt) {
        if (v > val) val = v, res = k;
    }
    cout << res << "\n";
    return 0;
}

C. Less or Equal

排序,如果第\(k\) 大和第\(k+1\)大不同输出第\(k\)大,否则输出\(-1\)

特判\(k=0,k=n\)

#include <bits/stdc++.h>

using namespace std;


int read() {
    int x = 0, f = 1, ch = getchar();
    while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
    if (ch == '-') f = -1, ch = getchar();
    while (ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
    return x * f;
}

int32_t main() {
    int n = read(), k = read();
    vector<int> a(n);
    for (auto &i: a) i = read();
    sort(a.begin(), a.end());
    if (k == 0) {
        if (a[0] == 1) cout << "-1";
        else cout << "1";
    } else if (k == n) cout << a.back();
    else {
        if (a[k] == a[k - 1]) cout << "-1";
        else cout << a[k - 1] << "\n";
    }
    return 0;
}

D. Divide by three, multiply by two

建图跑搜索即可。复杂度\(O(\frac{n^2}{4})\)

#include <bits/stdc++.h>

using namespace std;

#define int long long

int read() {
    int x = 0, f = 1, ch = getchar();
    while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
    if (ch == '-') f = -1, ch = getchar();
    while (ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
    return x * f;
}

int n;
vector<vector<int>> e;
vector<int> res, a;
vector<bool> vis;

void dfs(int x) {
    if (res.size() == n) {
        for (auto i: res) printf("%lld ", a[i]);
        exit(0);
    }
    for (auto v: e[x]) {
        if (vis[v]) continue;
        vis[v] = true, res.push_back(v);
        dfs(v);
        vis[v] = false, res.pop_back();
    }
    return;
}

int32_t main() {
    n = read();
    a = vector<int>(n + 1);
    e = vector<vector<int>>(n + 1);
    vis = vector<bool>(n + 1, false);
    for (int i = 1; i <= n; i++) a[i] = read(), e[0].push_back(i);
    for (int i = 1; i <= n; i++)
        for (int j = 1; j < i; j++) {
            if (a[i] * 2 == a[j]) e[i].push_back(j);
            if (a[i] * 3 == a[j]) e[j].push_back(i);
            if (a[j] * 2 == a[i]) e[j].push_back(i);
            if (a[j] * 3 == a[i]) e[i].push_back(j);
        }
    dfs(0);
    return 0;
}

E. Cyclic Components

并查集判断连通性,联通块内每个点的度数都是 2 的即为题面要求的环

#include <bits/stdc++.h>

using namespace std;

#define int long long

int read() {
    int x = 0, f = 1, ch = getchar();
    while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
    if (ch == '-') f = -1, ch = getchar();
    while (ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
    return x * f;
}

struct dsu {
    vector<int> fa;

    dsu(int n = 0) {
        fa = vector<int>(n + 1, -1);
    }

    int getfa(int x) {
        if (fa[x] < 0) return x;
        return fa[x] = getfa(fa[x]);
    }

    bool merage(int x, int y) {
        x = getfa(x), y = getfa(y);
        if (x == y) return false;
        if (fa[x] > fa[y]) swap(x, y);
        fa[x] += fa[y], fa[y] = x;
        return true;
    }

    bool check(int x, int y) {
        x = getfa(x), y = getfa(y);
        return x == y;
    }
};

int32_t main() {
    int n = read();
    vector<int> d(n + 1);
    dsu D(n);
    for (int x, y, m = read(); m; m--) {
        x = read(), y = read(), d[x]++, d[y]++;
        D.merage(x, y);
    }
    int res = 0;
    map<int, vector<int>> t;
    for (int i = 1; i <= n; i++) t[D.getfa(i)].push_back(i);
    for (auto it: t) {
        int f = 1;
        for (auto i: it.second)
            if (d[i] != 2) {
                f = 0;
                break;
            }
        res += f;
    }
    cout << res;
    return 0;
}

F. Consecutive Subsequence

首先\(O(n)\)的 dp 求最长连续子序列的长度和最后一个数。然后就可以还原出子序列中每个数的值,贪心的从后先前选择可选的最大值即可。

#include <bits/stdc++.h>

using namespace std;


int read() {
    int x = 0, f = 1, ch = getchar();
    while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
    if (ch == '-') f = -1, ch = getchar();
    while (ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
    return x * f;
}

int32_t main() {
    int n = read();
    map<int, int> f;
    map<int,vector<int>> cnt;
    for (int x , i = 1 ; i <= n; i ++ )
        x = read(), f[x] = max(1, f[x - 1] + 1) , cnt[x].push_back(i);
    int res = 0 , t ;
    for( auto [ k , v ] : f ){
        if( v > res ) res = v , t = k;
    }
    cout << res << "\n";
    vector<int> ans;
    for( int i = res , p = INT_MAX ; i ; i -- , t -- ){
        while( cnt[t].back() >= p ) cnt[t].pop_back();
        ans.push_back( cnt[t].back() ) , p = cnt[t].back();
    }
    reverse(ans.begin(), ans.end());
    for( auto i : ans ) cout << i << " ";

    return 0;
}

标签:ch,Contest,int,Spring,SMU,read,while,res,getchar
From: https://www.cnblogs.com/PHarr/p/17346626.html

相关文章

  • Spring高级 - 第2部分
    10、RequestMappingHandlerMapping与RequestMappingHandlerAdapter代码演示:/***例如经常要用到请求头中的token信息,用下面的注解来标注由哪个参数来获取它*token=令牌*/@Target({ElementType.PARAMETER})@Retention(RetentionPolicy.RUNTIME)public@interf......
  • spring boot项目的日志配置
    1.日志的作用日志记录了系统行为的时间、地点、状态等相关信息,能够帮助我们了解并监控系统状态,在发生错误或者接近某种危险状态时能及时提醒我们处理,同时在系统产生问题,能够帮助我们快速定位、诊断问题。2.常用的日志框架log4j:Log4j是Apache的一个Java的日志库,是一款非常古老......
  • spring事务失效的12种场景
    1.方法访问权限问题,只支持public2.方法用final修饰,动态代理不能代理final方法3.方法内部调用,同一对象内调用没有使用代理,未被aop事务管理器控制4.未被spring管理5.多线程调用,事务管理内部使用threadLocal,不同线程间不在同一事务6.表不支持事务7.未配置事务事务不回滚8.错误的传播......
  • SpringMVC-响应数据和结果视图
    一、返回值分类1、字符串@Controller@RequestMapping("test")publicclasstest{@RequestMapping("testString")publicStringtestString(Modelmodel){Useruser=newUser();user.setUserName("李四");......
  • Spring 通过注解配置bean
    微信公众号:测试加油站关注可了解更多的测试开发技术。问题或建议,请公众号留言;如果你觉得文章对你有帮助,欢迎转发[1]Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置。Spring的java配置是通过这两个注解实现的,@Configuration和@Bean@Configuration作用到类上,相当一个xml......
  • Spring的AOP
    动态代理特点:字节码随用随创建,随用随加载作用:不能修改源码的基础上对方法增强分类:     基于接口的动态代理     基于子类的动态代理基于接口的动态代理:     涉及的类:Proxy     提供者:JDK官方如何创建代理对象:     使用Proxy类中的ne......
  • Atcoder Beginner Contest 299 G
    对于要打印的\(B\),我们首先尝试确定\(B_1\)。让\(f(x)(1≤x≤M)\)是最大的\(i\),使\(A_i=x\)。对于\(r:=\underset{{{1≤x≤M}}}{\min}f(x)\),我们可以证明\(B_1\)是\(A_1,A_2,...,A_r\)中的一个(否则,\(B\)是\(A_{>r}:=(A_r+1,Ar+2,...,A_N)\)的一个子序列,但......
  • SpringBoot 集成 Quartz + MySQL
    Quartz简单使用JavaSpringBoot中,动态执行bean对象中的方法源代码地址=>https://gitee.com/VipSoft/VipBoot/tree/develop/vipsoft-quartz工作原理解读只要配置好DataSourceQuartz会自动进行表的数据操作,添加QuartzJob任务保存QRTZ_JOB_DETAILS、QRTZ_TRIGGERS=>QR......
  • Java SpringBoot 7z 压缩、解压
    JavaSpringBoot7z压缩、解压JavaSpringBoot7z压缩、解压cmd7z文件压缩7z压缩测试添加依赖<dependency><groupId>org.apache.commons</groupId><artifactId>commons-compress</artifactId><version>1.12</versi......
  • springcloud gateway
     springcloud gateway网关功能清单  1 为什么需要网关传统的单体架构中只有一个服务开放给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,那么作为客户端如何去调用这些微服务呢?如果没有网关的存在,只能在本地记录每个微服务的调用地址。 无网关的微服务......