ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Codeforces Round #674 (Div. 3)

2020-10-03 16:32:47  阅读:236  来源: 互联网

标签:ll 674 sum Codeforces long int ans Div rep


题目传送门

A. Floor Number

签到

#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, x;
 
inline void solve(int T)
{
    cin >> n >> x;
    if(n <= 2) cout << "1" << endl;
    else {
        n -= 2;
        cout << ceil(1.0 * n / x) + 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. Symmetric Matrix

容易发现只需要一个右上角等于左下角的矩阵就可以构造任意偶数大小的矩阵

#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, m;
int a[4], flag, cnt;
 
inline void solve(int T)
{
    cin >> n >> m;
    flag = 0;
    rep(i, 1, n) {
        rep(j, 0, 3) cin >> a[j];
        if(a[1] == a[2]) flag = 1;
        
    }
    if((m & 1) || (!flag)) cout << "NO\n";
    else cout << "YES\n";
}
 
 
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. Increase and Copy

贪心的想法:先将1加x,再把$x+1$复制y份,答案要满足$(x+1)*y>=n$

答案最多$63244$,可以直接枚举x

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(i, a, b) for (register int i = a; i <= b; i++)
 
 
inline void solve(int T)
{
    int n, ans = 63244;
    cin >> n;
    rep(i, 0, 63244) if(i - 1 + ceil(1.0 * n / (i + 1)) < ans) ans = i - 1 + ceil(1.0 * n / (i + 1));
    cout << ans << 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

 

D. Non-zero Segments

如果$1$至$i-1$没有和为$0$的子段,且$1$至$i$存在和为$0$的子段,那就在$i-1$和$i$之间插入一个值,值是什么不重要

大概就是这样贪

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(i, a, b) for (register int i = a; i <= b; i++)
 
map<ll, ll> mp;
ll n;
ll tmp, sum, ans;
 
inline void solve(int T)
{
    mp.clear();
    sum = ans = 0;
    cin >> n;
    rep(i, 1, n) {
        cin >> tmp;
        sum += tmp;
        if(mp[sum] || sum == 0) ans++, mp.clear(), sum = tmp;
        mp[sum] = 1;
    }
    cout << ans << 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

 

标签:ll,674,sum,Codeforces,long,int,ans,Div,rep
来源: https://www.cnblogs.com/likunhong/p/13764577.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有