• Educational Codeforces Round 96 (Rated for Div. 2)


    题目传送门

    A. Number of Apartments

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    #define rep(i, a, b) for (register int i = a; i <= b; i++)
     
    int n;
     
    inline void solve(int T)
    {
        cin >> n;
        rep(i, 0, n / 3 + 1) rep(j, 0, n / 5 + 1) rep(k, 0, n / 7 + 1) if(i * 3 + j * 5 + k * 7 == n) {
            cout << i << " " << j << " " << k << endl;
            return;
        }
        cout << "-1" << endl;
     
    }
     
     
    int main()
    {
        // ios_base::sync_with_stdio(0);
        // cin.tie(0);
        // cout.tie(0);
     
        // freopen("in.txt", "r", stdin);
        // freopen("ans.txt", "w", stdans);
     
        int T = 1;
        cin >> T;
        rep(i, 1, T) solve(i);
     
    }
    View Code

    B. Barrels

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    #define rep(i, a, b) for (register int i = a; i <= b; i++)
     
    ll n, k;
    ll a[200010];
    inline void solve(int T)
    {
        cin >> n >> k;
        rep(i, 1, n) cin >> a[i];
        sort(a + 1, a + n + 1);
        rep(i, 1, min(k, n - 1)) a[n] += a[n - i];
        if(k == 0) cout << a[n] - a[1] << endl;
        else cout << a[n] << endl;
     
     
    }
     
     
    int main()
    {
        // ios_base::sync_with_stdio(0);
        // cin.tie(0);
        // cout.tie(0);
     
        // freopen("in.txt", "r", stdin);
        // freopen("ans.txt", "w", stdans);
     
        int T = 1;
        cin >> T;
        rep(i, 1, T) solve(i);
     
    }
    View Code

    C. Numbers on Whiteboard

    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    #define rep(i, a, b) for (register int i = a; i <= b; i++)
     
    ll n;
    inline void solve(int T)
    {
        cin >> n;
        cout << 2 << endl;
        int tmp = n;
        rep(i, 1, n - 1) {
            cout << n - i << " " << tmp << endl;
            tmp = ceil((n - i + tmp) / 2.0);
        }
     
    }
     
     
    int main()
    {
        // ios_base::sync_with_stdio(0);
        // cin.tie(0);
        // cout.tie(0);
     
        // freopen("in.txt", "r", stdin);
        // freopen("ans.txt", "w", stdans);
     
        int T = 1;
        cin >> T;
        rep(i, 1, T) solve(i);
     
    }
    View Code

    D. String Deletion

    模拟

    E. String Reversal

    还是挺好理解,贪心取每个字母移动的对应位置,然后就求个逆序对。

    #include<bits/stdc++.h>
    using namespace std;
    #define ll long long
    #define rep(i, a, b) for(int i = a; i <= b; i++)
     
    int n;
    char s[200010];
    int a[200010];
    stack<int> sta[200];
    ll ans;
    
    void ksort(int l, int r) {
        int mid = (l + r) / 2;
        int i = l, j = mid + 1, id = 0;
        int f[r - l + 1];
        while(i <= mid || j <= r) {
            if(i > mid) f[++id] = a[j++];
            else if(j > r) f[++id] = a[i++];
            else if(a[i] <= a[j]) f[++id] = a[i++];
            else {
                f[++id] = a[j++];
                ans += mid - i + 1;
            }
        }
        rep(i, 1, id) a[l + i - 1] = f[i];
    }
    void merge(int l, int r) {
        if(l == r) return;
        int mid = (l + r) / 2;
        merge(l, mid);
        merge(mid + 1, r);
        ksort(l, r);
    }
    
    void run() {
        cin >> n;
        cin >> s + 1;
        rep(i, 1, n) sta[s[i]].push(n - i + 1);
        rep(i, 1, n) {
            a[i] = sta[s[i]].top();
            sta[s[i]].pop();
        }
        merge(1, n);
        cout << ans << endl;
    }
     
    int main() {
        cin.tie(0), cout.tie(0), ios::sync_with_stdio(0);
        // int t; cin >> t; while(t--)
        run();
    }
    View Code
  • 相关阅读:
    JavaScript经典效果集锦之五(转)
    消息队列函数
    ipcs查看消息队列命令
    sizeof的解析
    【转】使用Reporting Services制做可折叠的报表
    【转】Hibernate动态条件查询(Criteria Query)
    【Wonder原创】NHibernate调用存储过程
    【转】C# const和readonly的区别
    【转】人际关系经验
    winform只存在一个进程处理
  • 原文地址:https://www.cnblogs.com/likunhong/p/13811566.html
Copyright © 2020-2023  润新知