AtCoder ABC337 A-D题解

比赛链接:ABC337

Problem A:

日常签到题。

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    int cnt1=0,cnt2=0;
    for(int i=1;i<n;i++){
        int x1,x2;
        cin>>x1>>x2;
        cnt1+=x1;
        cnt2+=x2;
    }
    if(cnt1>cnt2)
    	cout<<"Takahashi"<<endl;
    else if(cnt1<cnt2)
    	cout<<"Aoki"<<endl;
    else
    	cout<<"Draw"<<endl;
    return 0;
}

Problem B:

其实就挨这个找,只要有一位不对劲了就输NO。你一看代码就知道了。

#i
本系统旨在构建一套面向高等院校的综合性教务管理平台,涵盖学生、教师及教务处三个核心角色的业务需求。系统设计着重于实现教学流程的规范化与数据处理的自动化,以提升日常教学管理工作的效率与准确性。 在面向学生的功能模块中,系统提供了课程选修服务,学生可依据培养方案选择相应课程,并生成个人专属的课表。成绩查询功能支持学生查阅个人各科目成绩,同时系统可自动计算并展示该课程的全班最高分、平均分、最低分以及学生在班级内的成绩排名。 教师端功能主要围绕课程与成绩管理展开。教师可发起课程设置申请,提交包括课程编码、课程名称、学分学时、课程概述在内的新课程信息,亦可对已开设课程的信息进行更新或撤销。在课程管理方面,教师具备录入所授课程期末考试成绩的权限,并可导出选修该课程的学生名单。 教务处作为管理中枢,拥有课程审批与教学统筹两大核心职能。课程设置审批模块负责处理教师提交的课程申请,管理员可根据教学计划与资源情况进行审核批复。教学安排模块则负责全局管控,包括管理所有学生的选课最终结果、生成包含学号、姓名、课程及成绩的正式成绩单,并能基于选课与成绩数据,统计各门课程的实际选课人数、最高分、最低分、平均分以及成绩合格的学生数量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
由于无法直接获取AtCoder ABC比赛的最新题解,可通过AtCoder官方网站(https://atcoder.jp/)查看最新比赛场次及题目,比赛结束后,在社区论坛如AtCoder的Discuss板块、GitHub等地方能找到他人分享的题解。 参考之前不同场次题解示例,例如AtCoder ABC 171 C题,是将一个数N转化为26进制用abc表示,模拟过程需注意细节,其AC代码如下: ```cpp #include<iostream> #include<cstdio> #include <stdio.h> #include<algorithm> #include<cstring> #include<cmath> #include<cstdlib> #include<queue> #include<map> #include<vector> #include <set> #define ll long long using namespace std; char a[5000000]; int main() { ll n; ll c=1; int m=0; cin>>n; while(n>0) { ll k=n%(26); if(k==0) { k=26; a[m++]='z'; } else { a[m++]='a'+k-1; } n=(n-k)/26; } for(int i=m-1;i>=0;i--) { cout<<a[i]; } return 0; } ``` 又如AtCoder ABC183题的AC代码如下: ```cpp #include<iostream> #include<bit/stdc++.h> #include<algorithm> #include<vector> #include<numeric> using namespace std; int main(void) { ios_base::sync_with_stdio(false); int N,W; cin >> N >> W; vector<int64_t> v(300000); for(int i = 0; i < N; i++){ int S, T, P; cin >> S >> T >> P; v[S] += P; v[T] -= P; } partial_sum(v.begin(), v.end(), v.begin()); if(*max_element(v.begin(), v.end()) > W) { cout << "No" << endl; } else { cout << "Yes" << endl; } return 0; } ``` 再如AtCoder ABC 242题解,使用while循环往上跳,每次字符往后移动1或2,开变量记录,时间复杂度为$O(Q\log k)$,代码如下: ```cpp #include <bits/stdc++.h> using namespace std; typedef unsigned long long uLL; typedef long double LD; typedef long long LL; typedef double db; const int N = 100005; int n, Ti; char x[N]; int main() { scanf("%s%d", x + 1, &Ti); n = strlen(x + 1); for (LL a, b, c; Ti--; ) { scanf("%lld%lld", &a, &b); c = 0; while (a && b > 1) { if (!(b & 1)) ++c; ++c; b = b + 1 >> 1, a--; } c += a; printf("%c\n", char((x[b] - 'A' + c) % 3 + 'A')); } } ``` 还有AtCoder ABC237题是签到题,可使用C++的INT_MAX和INT_MIN,若不知这两个常数可自行定义,AC代码如下: ```cpp #include<bits/stdc++.h> using namespace std; typedef long long LL; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); LL n; cin>>n; if (n>=INT_MIN && n<=INT_MAX){ cout<<"Yes\n"; }else{ cout<<"No\n"; } return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值