Codeforces Round 886 (Div. 4)(A-H)

A-To My Critics

读入 a,b,c 如果三个里较大的两个的和大于等于 10 输出 YES,不然输出 NO

#include <bits/stdc++.h>
using namespace std;
void solve()
{
int a, b, c;
cin >> a >> b >> c;
cout << (a+b+c-min({a,b,c}) >= 10 ? "YES\n" : "NO\n");
}
int main()
{
int t;
cin >> t;
while(t--)
{
solve();
}
}

B - Ten Words of Wisdom

读入n个数然后读入a,b若是a>=10直接忽略,不然就记录最大的b的序号

#include <bits/stdc++.h>
using namespace std;
const int MAX = 200007;
const int MOD = 1000000007;
void solve() {
int n;
cin >> n;
int winner = -1, best_score = 0;
for (int i = 1; i <= n; i++) {
int a, b;
cin >> a >> b;
if (b > best_score && a <= 10) {winner = i; best_score = b;}
}
cout << winner << '\n';
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int tt; cin >> tt; for (int i = 1; i <= tt; i++) {solve();}
// solve();
}

C-Word on the Paper

遍历二维数组只要不是点就输出他

#include<bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
while(t--)
{
char a;
for(int i=0;i<8;i++)
{
for(int j=0;j<8;j++)
{
cin>>a;
if(a!='.')cout<<a;
}
}
cout<<endl;
}
}

E-Cardboard for Pictures

对答案进行二分查找:找到最大的w的,使得f(w)<=c,理论上w的最大值不会超过1e9,因为c不超过1e18,关于实现的一点说明:f(x)的值可能超过64位整数

#include<bits/stdc++.h>
#define int unsigned long long
using namespace std;
const int N=2e5+5;
int n,c;
int s[N];
void solve()
{
cin>>n>>c;
int s1=0,s2=0;
for(int i=1;i<=n;i++)
{
cin>>s[i];
s1+=s[i];
s2+=s[i]*s[i];
}
c-=s2;
c=c/4;
c=c/n;
s1/=2*n;
int t=sqrt(s1*s1+c);
t-=s1;
//int t=(sqrt(s1*s1-n*(s2-c))-s1)/(2*n);
cout<<t<<endl;
return;
}
int32_t main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
while(t--)
{
solve();
}
return 0;
}

被注释掉的那一部分和上面那一部分没有本质区别,但是就是更换之后就会在样例的第九个过不了但将其分开计算就不会wa百思不得其解,不在知道为啥

原因:是在先乘后除的时候乘法爆了只要你能做到先乘后除即可

F - We Were Both Children

首先大于n的ai都直接忽略,记录每个距离下游多少只青蛙,然后遍历从1到n的每个i,并将cnti添加到小于或者等于n的每个i的倍数,然后遍历1到n的所有数字 取最大值

#include<bits/stdc++.h>
using namespace std;
#define int long long
void solve()
{
int n;
cin>>n;
vector<int>cnt(n+1,0),mx(n+1,0);
for(int i=0;i<n;i++)
{
int x;
cin>>x;
if(x<=n)cnt[x]++;
}
for(int i=1;i<=n;i++)
{
for(int j=i;j<=n;j+=i)mx[j]+=cnt[i];
}
int maxn=0;
for(int i=1;i<=n;i++)
{
maxn=max(maxn,mx[i]);
}
cout<<maxn<<endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t=1;
cin>>t;
while(t--)
{
solve();
}
}

G. The Morning Star

和前两天做的那个"求多少对直线有公共交点"的题目有些相似,要记住n条斜率不同的直线组成的相交对是n *(n-1)/2
与之相似的是在这道题中需要考虑哪个作为指南针,哪个作为晨星因此计算方法应为n*(n-1)

#include<bits/stdc++.h>
using namespace std;
#define liuwansi ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
#define int long long
int n,t;
map<int,int>up,side,diag1,diag2;
int ans;
signed main()
{
liuwansi
cin>>t;
while(t--)
{
up.clear();
side.clear();
diag1.clear();
diag2.clear();
ans=0;
cin>>n;
for(int i=0;i<n;i++)
{
int x,y;
cin>>x>>y;
up[x]++;
side[y]++;
diag1[x-y]++;
diag2[x+y]++;
}
for(auto x:up)
{
ans+=x.second*(x.second-1);
}
for(auto x:side)
{
ans+=x.second*(x.second-1);
}
for(auto x:diag1)
{
ans+=x.second*(x.second-1);
}
for(auto x :diag2)
{
ans+=x.second*(x.second-1);
}
cout<<ans<<endl;
}
}

H. The Third Letter

#include "bits/stdc++.h"
using namespace std;
#define ll long long
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(),v.rend()
#define pb push_back
#define sz(a) (int)a.size()
#define int long long
const int N = 2e5 + 5;
vector<pair<int, int>> adj[N];
int val[N], vis[N];
void dfs(int u) {
vis[u] = 1;
for(auto x: adj[u]) {
int v = x.first, w = x.second;
if(!vis[v]) {
val[v] = val[u] + w;
dfs(v);
}
}
}
void solve() {
int n, m; cin >> n >> m;
for(int i = 1; i <= n; ++i) {
adj[i].clear();
vis[i] = 0, val[i] = 0;
}
vector<array<int, 3>> c;
for(int i = 1; i <= m; ++i) {
int a, b, d; cin >> a >> b >> d;
adj[a].pb({b, d});
adj[b].pb({a, -d});
c.pb({a, b, d});
}
for(int i = 1; i <= n; ++i) {
if(!vis[i]) dfs(i);
}
for(int i = 1; i <= m; ++i) {
int a = c[i - 1][0], b = c[i - 1][1], d = c[i - 1][2];
if(val[a] + d != val[b]) {
cout << "NO\n";
return;
}
}
cout << "YES\n";
}
int32_t main() {
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t = 1;
cin >> t;
while(t--) {
solve();
}
}
posted @   liuwansi  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示