首页 > 其他分享 >CSP 总结

CSP 总结

时间:2023-07-19 14:26:09浏览次数:33  
标签:总结 cout ++ REP CSP && else ll

CSP-J2022

A 乘方

直接把 \(a=1\) 特判掉,开 \(\mathrm{long~long}\) 暴力乘。

void solve() {
    ll s = 1, a, b;
    cin >> a >> b;
    if(a == 1) {
        cout << 1 << endl;
        return;
    }
    REP(i, b) {
        s *= a;
        if(s > 1e9) {
            cout << -1 << endl;
            return;
        }
    }
    cout << s << endl;
}

B 解密

解一个一元二次方程即可。

void solve() {
    ll n, e, d, m;
    cin >> n >> e >> d;
    m = e * d;
    ll B = n - m + 2;
    ll D = B * B - 4 * n;
    ll S = sqrt(D);
    if(D < 0 || S * S != D) {
        cout << "NO" << endl;
        return;
    }
    if(B - S <= 0 || (B - S) % 2) {
        cout << "NO" << endl;
        return;
    }
    cout << (B - S) / 2 << " " << (B + S) / 2 << endl;
}

C 逻辑表达式

性质题。
首先题目中说与运算比或预算优先级高,这个条件可以消除掉。
假如有式子 \(a|b\&c\)。
如果 \(a\) 为 \(0\),那么对结果没有影响。
如果 \(a\) 为 \(1\),那么直接短路。
所以优先级不重要。
考虑从头开始扫。
如果有或运算的短路,那么把之后连续的与运算跳过即可。
如果有与运算的短路,就也是把之后连续的与运算跳过。

void solve() {
    int n;
    string s;
    cin >> s; n = s.size();
    int res = 0, A = 0, B = 0, F = 0;
    REP(i, n) {
        if(F) {
            if(s[i] == '(') {
                int cnt = 1;
                while(cnt) {
                    i++;
                    if(s[i] == '(') cnt++;
                    if(s[i] == ')') cnt--;
                }
            }
            else if(F == 1 && s[i] == '|') {
                F = 0;
            }
            else if(s[i] == ')') {
                F = 0;
            }
            else if(F == 1 && s[i] == '&') {
                A++;
            }
            else if(F == 2 && s[i] == '|') {
                B++;
            }
        }
        else {
            if(s[i] == '1') res = 1;
            if(s[i] == '0') res = 0;
            if(s[i] == '&' && !res) {
                F = 1;
                A++;
            }
            if(s[i] == '|' && res) {
                F = 2;
                B++;
            }
        }
    }
    cout << res << endl << A << " " << B << endl; 
}

D 上升点列

设置状态 \(f_{i, j}\) 为第 \(i\) 个点为连线终点,还剩 \(j\) 个自由点可以用的最长长度。
直接 \(O(n^2k)\) 转移即可。

void solve() {
    int n, k;
    cin >> n >> k;
    vector<PII> a(n);
    REP(i, n) cin >> FI(a[i]) >> SE(a[i]);
    sort(ALL(a));
    vector<vector<int>> f(n, vector<int>(k + 1));
    REP(i, n) {
        f[i][k] = 1;
        REP(j, i) {
            if(SE(a[j]) <= SE(a[i])) {
                int len = SE(a[i]) - SE(a[j]) + FI(a[i]) - FI(a[j]) - 1;
                FOR(l, 0, k) {
                    int r = l + len;
                    if(r > k) break;
                    chmax(f[i][l], f[j][r] + len + 1);
                }
            }
        }
    }
    int ans = 0;
    REP(i, n) {
        FOR(j, 0, k) {
            chmax(ans, f[i][j] + j);
        }
    }
    cout << ans << endl;
}

标签:总结,cout,++,REP,CSP,&&,else,ll
From: https://www.cnblogs.com/xiaocaibiancheng/p/17565243.html

相关文章

  • ClickHouse多种实时更新方法总结
    ClickHouse本身对update的执行是低效的,因为ClickHouse的MergeTree存储一旦生成一个DataPart,这个Part就不支持更改,而是需要删除旧Part,重写整个Part。所以从MergeTree存储内核层面,ClickHouse就不擅长做数据更新删除操作。本文讲述的方法包括采用系统自带的Update,采用Replacing......
  • 基于200篇文献的中式英语常见错误人工总结(学习总结和视频放送)
    TheMostCommonHabitsfrommorethan200EnglishPaperswrittenbyGraduateChineseEngineeringStudentsByFeliciaBrittman这篇文章通过示例,一对一的指出原文写法错误是什么,应该怎么写,为什么会出现这个错误,并给出一些修改建议。可以作为自己写作前指导或写作后检查指导。......
  • [转] C# SuperSocket 服务端使用总结
    简介SuperSocket是一个轻量级,跨平台而且可扩展的.Net/MonoSocket服务器程序框架。你无须了解如何使用Socket,如何维护Socket连接和Socket如何工作,但是你却可以使用SuperSocket很容易的开发出一款Socket服务器端软件,例如游戏服务器,GPS服务器,工业控制服务和......
  • 代码随想录算法训练营第57天 | ● 647. 回文子串 ● 516.最长回文子序列 ● 动
     第九章 动态规划part17●  647. 回文子串  ●  516.最长回文子序列●  动态规划总结篇 今天 我们就要结束动态规划章节了,大家激不激动!!!   详细布置   647. 回文子串    动态规划解决的经典题目,如果没接触过的话,别硬想 直接看题解。https:......
  • 7.19总结
    上午起的比较早,五点半起来了,吃了饭去姥姥家一趟,回来后在床上躺了会,看了一下假期前老师发的那个java测试题,大约读了一遍,了解了一下功能需求,其实对于目前的我的来说,感觉还是有些难,希望小学期做完那几个程序系统会给我带来点提升吧。下午就摆了,看了会大道至简,里面有些看不懂,反正今天......
  • position属性总结
    1.position:relative;相对定位1>不影响元素本身特性(无论区块元素还是内联元素会保留其原本特性)2>不会使元素脱离文档流(元素原本位置会被保留,即改变位置也不会占用新位置)3>没有定位偏移量时对元素无影响(相对于自身原本位置进行偏移)4>提升层级(用z-index样式的值可以改变一......
  • 20230718巴蜀暑期集训测试总结
    T1做了\(3h\),时间复杂度不对,小样例都还有一个没过。考虑容斥,不连通的情况枚举\(1\)号点所在连通块。设\(f_{S,i}\)表示\(S\)连通且选了\(i\)条边的方案数。设\(inb_s\)表示\(S\)内部的边数。那么有转移:\[f_{S,i}=\binom{inb_S}i-\sum_{T\subsetneqqS,1\inT}......
  • 7.17总结
    周一赶凌晨的火车去青岛,九点半到青岛,坐地铁去酒店,下午租车环海,晚上去啤酒节,真的很好。 ......
  • 7.18总结
    周二十点半才醒,然后十二点从黄岛坐地铁到市南区,下午做了游轮,去了八大峡打卡路星河耿耿网红地,但是封锁不能进去了,现在正在坐地铁去第三海浴。 ......
  • 【考后总结】7 月多校国赛模拟赛 3
    7.14冲刺国赛模拟36T1染色题关键性质是奇数偶数位上可以放置的只有两种,若\(i\)和\(i-2\)选的颜色不同,那么在\(i\)位置放一个球,\([l,r]\)的限制等价于\([l+2,r]\)中奇数位和偶数位不同时有球。设\(f_i\)为\(i\)放置一个球的合法方案数,这样直接枚举上一个球所在......