Problem A. 签到啦

从大到小排序,累加大于行李w时输出下标即可

int ans;
void solve()
{
cin >> n >> m;
int ans = 0;
vector<int> a(n);
for(int i = 0;i < n;i ++){
cin >> a[i];
}
sort(a.begin(), a.end());
reverse(a.begin(),a.end());
for(int i = 0;i < n; i++ ){
ans += a[i];
if(ans >= m){
cout << i + 1 << endl;
return;
}
}
}

Problem B. 熙巨打票

冷却时间小于操作时间时,实际上就等于操作时间乘以票数,大于操作时间时,假设操作时间4分钟,冷却时间10分钟,在两台上操作完后还需要等6分钟才能进行操作,6分钟后加上第一台操作完毕的时间刚好10分钟这时第二台又可以操作了,如此往复,票数是奇数时除以2就是要等待的次数,偶数时需减一次,因为最后一次出完后不需要再等待了.

void solve() {
int a,b,n;
cin >> a >> b >> n;
if(a <= b){
cout << b * n << endl;
return ;
}
else{
if(n & 1){
cout << b * n + (n>>1) * (a - b) << endl;
}
else{
cout << b * n + ((n >> 1) - 1) * (a - b) << endl;
}
}
}

Problem C. 三元分配

按题意我们可以先分成四种情况,即(以下奇数简称奇,偶数简称偶)奇奇奇,奇奇偶,奇偶偶,偶偶偶,其中奇奇奇和奇偶偶一定是不能配对的,偶偶偶是一定可以配对,所以我们要对奇奇偶这种情况再讨论,因为两个部门要凑成质数才可以进行配对,而两个奇数加起来是质数只能是两个1,且两个1加一个偶数是一定可以配对的,另外再讨论两个奇数与偶数配对成质数的情况即可,当偶数是0时,这时就变成了两个奇数配对了,此时要特判一下

bool f(int x){
if(x < 2)
return false;
if(x == 2)
return true;
for(int i = 2;i <= sqrt(x);i ++)
if(x % i == 0)
return false;
return true;
}
void solve()
{
cin >> n >> m >> k;
if((n + m + k) & 1){
cout << 'P' << endl;
return ;
}
if(n % 2 == 0 && m % 2 == 0 && k % 2 == 0){
cout << 'R' << endl;
return ;
}
if(n == 1 && m == 1 || n == 1 && k == 1 || m == 1 && k == 1){
cout << 'R' << endl;
return ;
}
if(f(n + m) && f(n + k) &&n != 0 || f(m + n) && f(m + k) && m != 0 || f(k + n) && f(k + m) && k != 0){
cout << 'R' << endl;
return ;
}
cout << 'P' << endl;
return ;
}

Problem D. "逆"天求和

哎,还特意查了一下逆元的公式啥的,最后发现这道题要做的话感觉又和逆元没啥关系

感兴趣的可以自己推到一下,就是说当p为质数时,其1到p-1的逆元都在1到p-1中且互不重复

所以我们直接1到p-1累加即可

void solve()
{
cin >> n;
int sum = 0;
for(int i = 1;i < n;i ++){
sum += i;
}
cout << sum << endl;
}

Problem E. 读中国数字

纯模拟,不想多说(

#include  <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define endl '\n'
#define int long long using namespace std; const int N = 1e5 + 10, mod = 1e9 +7; //typedef long long ll;
typedef pair<int,int> PII;
//queue<PII> q1;
//priority_queue <int,vector<int>,greater<int> > q2;
int n,m,t,k;
/*
*/
int ans;
void solve()
{
string num;
cin >> num;
if(num == "0"){
cout << num << endl;
return ;
}
string chinese = "";
string unit[] = {"", "T", "B", "K", "W", "Y"};
string digit[] = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
int len = num.length();
int i = 0;
while (i < len) {
int j = len - i - 1;
int k = j % 4;
bool fw = false,fy = false;
if (num[i] == '0') {
int zeroCount = 0;
bool f = false;
while (i < len && num[i] == '0') {
i++;
if((len - i) == 8 && !fy){
chinese += "Y";
f = true;
fy = true;
}
if((len - i) == 4 && !f && !fw && chinese.back() != 'Y'){
chinese += "W";
f = true;
fw = true;
}
zeroCount++;
}
if (j == 4 && !f && !fw) {
chinese += "W";
} else if (j == 8 && !f && !fy) {
chinese += "Y";
}
if(zeroCount >= 1 && i != len && (len - i) != 4 && (len - i) != 8)
chinese += '0';
} else {
chinese += digit[num[i] - '0'] + unit[k];
if (j == 4 && !fw) {
chinese += "W";
fw = true;
} else if (j == 8 && !fy) {
chinese += "Y";
fy = true;
}
i++;
}
}
cout << chinese << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int Ke_scholar = 1;
cin >> Ke_scholar ;
while(Ke_scholar--)
solve();
return 0;
}

Problem H. 我爱XTU

可以每次计算x,t,u的数量,用pair对其中两个的差进行一个存储,如果这个pair前面出现过,说明从前面到现在有加了x,t,u数量相同的子串,需要注意的当x,t,u数量相等的时候需要加一次,或者在最开始就往pair对里放一组{0,0}.

#include  <bits/stdc++.h>
#define inf 0x3f3f3f3f
#define endl '\n'
#define int long long using namespace std; const int N = 1e5 + 10, mod = 1e9 +7; //typedef long long ll;
typedef pair<int,int> PII;
//queue<PII> q1;
//priority_queue <int,vector<int>,greater<int> > q2;
int n,m,t,k;
/*
*/
int ans;
void solve()
{
string s;
cin >> s;
ans = 0;
int x = 0, t = 0, u = 0;
map<PII, int> mp;
for(int i = 0;i < s.size();i ++){
if(s[i] == 'X')
x ++;
else if(s[i] == 'T')
t ++;
else
u ++;
int divx = x - t;
int divu = u - t;
if(x == t && t == u)
ans ++;
if(mp.count({divx,divu})){
ans += mp[{divx, divu}];
// cout << x << ' ' << t << ' ' << u << endl;
}
mp[{divx,divu}]++;
}
cout << ans << endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int Ke_scholar = 1;
cin >> Ke_scholar ;
while(Ke_scholar--)
solve();
return 0;
}

SMU Spring 2023 Contest Round 3(2023年湘潭大学新生赛)的更多相关文章

  1. contesthunter CH Round #64 - MFOI杯水题欢乐赛day1 solve

    http://www.contesthunter.org/contest/CH Round %2364 - MFOI杯水题欢乐赛 day1/Solve Solve CH Round #64 - MFO ...

  2. 2015 Astar Contest - Round 3 题解

    1001 数长方形 题目大意 平面内有N条平行于坐标轴的线段,且不会在端点处相交 问共形成多少个矩形 算法思路 枚举4条线段的全部组合.分别作为矩形四条边.推断是否合法 时间复杂度: O(N4) 代码 ...

  3. Contest Round #451 (Div. 2)F/Problemset 898F Restoring the Expression

    题意: 有一个a+b=c的等式,去掉两个符号,把三个数连在一起得到一个数 给出这个数,要求还原等式,length <= 1e6 三个数不能含有前导0,保证有解 解法: 铁头过题法,分类然后各种判 ...

  4. CH Round #55 - Streaming #6 (NOIP模拟赛day2)解题报告

    T1九九归一 描述 萌蛋在练习模n意义下的乘法时发现,总有一些数,在自乘若干次以后,会变成1.例如n=7,那么5×5 mod 7=4,4×5 mod 7=6,6×5 mod 7=2,2×5 mod 7 ...

  5. CH Round #54 - Streaming #5 (NOIP模拟赛Day1)解题报告

    最近参加了很多CH上的比赛呢~Rating--了..题目各种跪烂.各种膜拜大神OTZZZ T1珠 描述 萌蛋有n颗珠子,每一颗珠子都写有一个数字.萌蛋把它们用线串成了环.我们称一个数字串是有趣的,当且 ...

  6. 队爷的讲学计划 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的讲学计划 题解:刚开始理解题意理解了好半天,然后发 ...

  7. 队爷的Au Plan CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的Au%20Plan 题解:看了题之后觉得肯定是DP ...

  8. 队爷的新书 CH Round #59 - OrzCC杯NOIP模拟赛day1

    题目:http://ch.ezoj.tk/contest/CH%20Round%20%2359%20-%20OrzCC杯NOIP模拟赛day1/队爷的新书 题解:看到这题就想到了 poetize 的封 ...

  9. CH Round #58 - OrzCC杯noip模拟赛day2

    A:颜色问题 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2358%20-%20OrzCC杯noip模拟赛day2/颜色问题 题解:算一下每个仆人到它的目的地 ...

  10. CH Round #49 - Streaming #4 (NOIP模拟赛Day2)

    A.二叉树的的根 题目:http://www.contesthunter.org/contest/CH%20Round%20%2349%20-%20Streaming%20%234%20(NOIP 模 ...

随机推荐

  1. 记录vue和js操作——尽管很快实现了功能,可总感觉到不爽

    需求产生的原因是:后端有一些数据是从旧平台直接迁移过来的,新平台需要根据迁移过来的数据,自动生产新的数据格式. 操作符有如下几种,分项.支路和数字配合操作符可以自定义组合,例如 [0000000000 ...

  2. Pytorch复制现有环境

    一,在本机上,打开anaconda Prompt直接使用 conda create -n 新环境名 --clone 旧环境名

  3. 配置 Nginx + PHP(FastCGI/FPM)

    有关概念 Nginx是什么 Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器. Php-fpm是什么 1.c ...

  4. 【排行榜】Carla leaderboard 排行榜 运行与参与手把手教学

    此分支主要供参与leaderboard排名使用,介绍如何构建队伍,提交自己代码,此部分较为简单,主要是基本教学与演示:后续可以参考更多的开源代码进行学习等. 基本参与此榜单的大多都是学校和实验室,还是 ...

  5. yb课堂 核心数据库表字段设计和测试数据准备 《一》

    设计对应的表字段(统一使用Innodb引擎,mysql5.7) video_banner video chapter episode video_order user 数据库脚本 CREATE TAB ...

  6. Java-C3P0和Druid连接池的运用

    1.概念 其实就是一个容器(集合),存放数据库连接的容器 当系统初始化好后,容器被创建,容器会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器. 好 ...

  7. Arctic开源!网易数帆×华泰证券,推动湖仓一体落地

    数字化转型趋势下,各行业对数据生产力的探索与追求逐步进入深水区.现实的问题是,企业数据仓库存储.数据湖多种技术并存的局面将长期存在,如何才能摆脱技术协同的内耗,让大数据直通生产力的彼岸? 8月11日下 ...

  8. win10配置 sshkey

    win10配置 sshkey 一:生成sshkey 打开powershell 或者 cmd 输入命令: ssh-keygen -t rsa 1 提示输入文件名 [不输入,使用默认文件名,回车] 2 提 ...

  9. 修改 /etc/resolv.conf

    修改 /etc/resolv.conf /etc/resolv.conf 是 Linux 系统中用于配置 DNS 解析器的文件.确认 systemd-resolved 或 NetworkManager ...

  10. java小技巧~修改对象的属性名

    今天联调的时候,有个功能是在初始化的时候将图片路径回显到vant组件的上传组件上,但是vant组件需要图片路径名叫url,而后端返给我的路径名叫filePath,而且是双层嵌套.一个个遍历老麻烦了,下 ...