当前位置: 首页 > news >正文

AtCoder Beginner Contest 367 A~D

本期封面原图 画师えびら

A - Shout Everyday

题意

b点睡觉c点起床,问你a点是不是醒着的

思路

直接判断即可,注意处理跨天的情况

代码

#include <bits/stdc++.h>
#define mod 998244353
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;int main()
{int a,b,c;cin >> a >> b >> c;if(b>c){if(a>=b or a<=c)cout << "No";elsecout << "Yes";return 0;}if(b<=a && a<=c)cout << "No";elsecout << "Yes";return 0;
}

B - Cut .0

题意

给你一个数,去掉他的无效0,也就是小数点右边末尾的和小数点左边最前面的

思路

直接模拟即可

代码

#include <bits/stdc++.h>
#define mod 998244353
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;int main()
{string s;cin >> s;//给一个数字,去掉无效0int n=s.length();string ans="";int flag=0;int i;for (i=0;i<n;i++){if(s[i]=='.')break;if(flag==0 and s[i]=='0')continue;else{flag=1;ans+=s[i];}}ans+='.';int j;for(j=n-1;j>i;j--){if(s[j]=='0')continue;elsebreak;}for(int k=i+1;k<=j;k++)ans+=s[k];if(ans[0]=='.')ans="0"+ans;if(ans[ans.length()-1]=='.')ans=ans.substr(0,ans.length()-1);cout << ans << endl;return 0;
}

C - Enumerate Sequences

题意

按升序排列打印所有满足以下条件的长度为 N N N 的整数序列。

  • i i i 个元素介于 1 1 1 R i R_i Ri 之间(包括首尾两个元素)。
  • 所有元素之和是 K K K 的倍数。

思路

数据范围很小,所以直接dfs遍历即可

代码

#include <bits/stdc++.h>
#define mod 998244353
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
int n,k;
int r[10];
vector<int> ans(10);
void dfs(int dpt,int sum)
{if(dpt==n){if(sum%k==0){for (int i=0;i<n;i++) cout << ans[i] << " ";cout << endl;}return ;}for(int i=1;i<=r[dpt];i++){ans[dpt]=i;dfs(dpt+1,sum+i);}
}int main()
{cin >> n >> k;for (int i=0;i<n;i++) cin >> r[i];dfs(0,0);return 0;
}

D - Pedometer

题意

一个湖周围有 N N N 个休息区。
休息区按顺时针顺序编号为 1 1 1 2 2 2 、…、 N N N
从休息区 i i i 顺时针走到休息区 i + 1 i+1 i+1 需要 A i A_i Ai 步(其中休息区 N + 1 N+1 N+1 指的是休息区 1 1 1 )。
从休息区 s s s 顺时针走到休息区 t t t s ≠ t s \neq t s=t )所需的最小步数是 M M M 的倍数。
( s , t ) (s,t) (s,t) 的可能对数。

思路

我们可以直接前缀和,然后对前缀和每一个位置取模,模相等的那就说明从前面那个点走到右边那个点算是一对合法对。
然后考虑转了好几圈的情况,我们把这个湖拉直,然后继续往后加,也就是到1之后我还继续走下一轮,无限地往后计算前缀和
在这里插入图片描述
那么现在问题是什么时候结束呢?自然就是某一个点1的前缀和取模后刚好为0,这样就算是完成了一整次循环,最后计算即可

代码

#include <bits/stdc++.h>
#define mod 998244353
using namespace std;
typedef long long ll;
typedef double db;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
const int N=4e5+5;
const int M=1e6+5;
ll n,m;
ll a[N];
ll pre[N];
ll cnt[M];
ll ans;int main()
{ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);cin >> n >> m;for (int i = 1; i <= n; i++) cin >> a[i];for (int i = 1; i <= n; i++) {a[i+n] = a[i];}for (int i=1; i <= 2*n; i++) {pre[i] = pre[i-1]+a[i];}for (int i = 1; i <= 2*n; i++) {if (i <= n) {ans += cnt[pre[i]%m];cnt[pre[i]%m]++;} else {cnt[pre[i-n]%m]--;ans += cnt[pre[i]%m];}}cout << ans;return 0;
}
http://www.lryc.cn/news/426329.html

相关文章:

  • oracle 保留两位小数
  • Aop切面技术之存储用户信息
  • FreeBSD 针对OpenSSH 高危漏洞发布紧急补丁
  • 【C语言小项目】五子棋游戏
  • 基于Java语言的能源管理系统-水电气热油数据采集系统
  • 人工智能在肿瘤亚型分类领域的研究进展|顶刊速递·24-08-13
  • Taro+Vue 创建微信小程序
  • 智能安全守护,寺庙安全用电解决方案
  • 加热系统加入达温即停和保温功能
  • C++_2_ inline内联函数 宏函数(2/3)
  • ROS执行多个节点报错(遥控运动及SLAM建图)
  • Spring Boot项目中实现文件的上传、下载和预览功能
  • 【JAVA入门】Day21 - 时间类
  • SQL server数据库备份和还原
  • B站搜索建库架构优化实践
  • XSS反射实战
  • 远程消息传递的艺术:NSDistantObject在Objective-C中的妙用
  • 指向派生类的基类指针、强转为 void* 再转为基类指针、此时调用虚函数会发生什么?
  • 操作系统(Linux实战)-进程创建、同步与锁、通信、调度算法-学习笔记
  • react的setState中为什么不能用++?
  • 2.2算法的时间复杂度与空间复杂度——经典OJ
  • 【CentOS 】DHCP 更改为静态 IP 地址并且遇到无法联网
  • Linux 操作系统 --- 信号
  • 黑马前端——days09_css
  • 【Python爬虫】技术深度探索与实践
  • 智启万象|挖掘广告变现潜力,保障支付安全便捷
  • 函数递归,匿名、内置行数,模块和包,开发规范
  • Springboot3 整合swagger
  • 查看同一网段内所有设备的ip
  • Spark MLlib 特征工程(上)