周赛44

4317. 不同正整数的个数

link:https://www.acwing.com/problem/content/4320/

我直接set

#include <iostream>
#include <set> using namespace std;
int n;
int a[105];
set<int> p; int main (){
cin >> n;
for (int i = 1; i <= n; i ++){
cin >> a[i];
if (a[i] > 0)
p.insert (a[i]);
}
cout << p.size() << endl; }

4318. 最短路径

link:https://www.acwing.com/problem/content/4321/

情况要考虑周全:

  1. 不能有环 (走过的标记一下)

  2. 不能相邻 (起点或终点的相邻块数目 > 1 或者 其余任何一点的相邻块数目 > 2 )考试的时候没想到

注意边界问题(起点坐标要设置为地图大小的一半)

#include <iostream>
#include <algorithm>
#include <vector> using namespace std;
const int N = 205;
typedef pair <int, int> pii; string s;
bool a[N * 2][N * 2];
int x = N, y = N;
int dx[] = {0, 1, 0, -1}, dy[] = {1, 0, -1, 0};
vector <pii> v; int main (){
cin >> s;
a[x][y] = true;
v.push_back ({x, y});
//判相交
for (int i = 0; i < s.size(); i ++){
if (s[i] == 'U')
x --;
if (s[i] == 'D')
x ++;
if (s[i] == 'L')
y --;
if (s[i] == 'R')
y ++;
v.push_back ({x, y});
if (a[x][y]){
cout << "NO";
return 0;
}
a[x][y] = true;
} int n = v.size();
bool flag = true;
//判相邻:大于二(起点终点:大于一)
//起点终点
int cnt0 = 0, cntn = 0;
for (int i = 0; i < 4; i ++){
int xx = v[0].first + dx[i], yy = v[0].second + dy[i];
if (a[xx][yy])
cnt0 ++;
}
for (int i = 0; i < 4; i ++){
int xx = v[n - 1].first + dx[i], yy = v[n - 1].second + dy[i];
if (a[xx][yy])
cntn ++;
}
if (cnt0 > 1 || cntn > 1){
cout << "NO";
return 0;
} //其余点
for (int j = 0; j < v.size(); j ++){
int cnt = 0;
for (int i = 0; i < 4; i ++){
int xx = v[j].first + dx[i], yy = v[j].second + dy[i];
if (a[xx][yy])
cnt ++;
}
if (cnt > 2){
cout << "NO";
return 0;
}
} cout << "YES"; }

4319. 合适数对

link:https://www.acwing.com/problem/content/4322/

算术基本定理

本题就是求所有质因子的个数能被 k 整除

看公式:

\[N = p_1^{\alpha _ 1}p_2^{\alpha _ 2}...p_k^{\alpha _ k}\\
a_i = p_1^{\alpha _ 1}...p_k^{\alpha _k}\\
a_j = p_1^{\beta _ 1}...p_k^{\beta _k}\\
则需满足 k | (\alpha _ i + \beta_ i)
\]

然后用粗略计算一下,可以发现 $2 * 3 * 5 * 7 * 11 * 13 * 17 = 510510 > 100000 $所以最多只有六种质因子(最多六项)

统计质因子次数

//大佬的STL做法
#include <iostream>
#include <cstring>
#include <algorithm>
#include <map>
#include <unordered_map>
using namespace std;
typedef long long LL;
typedef pair<int, int> PII; const int N = 100010;
LL a[N];
map <vector<PII>, int> cnt; int main() {
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i ++) cin >> a[i];
LL ans = 0;
for (int i = 1; i <= n; i ++) {
int x = a[i];
vector <PII> b, c;
for (int j = 2; j <= x / j; j ++) {
int c = 0;
if (x % j == 0) {
while (x % j == 0) x /= j, ++c;
}
if (c % m) b.push_back({j, c % m});
}
if (x > 1) b.push_back({x, 1});
for (auto [x, y] : b) {
c.push_back({x, m - y});
}
ans += 1ll * cnt[c];
cnt[b]++;
}
cout << ans;
return 0;
}

AcWing周赛44的更多相关文章

  1. AcWing周赛43

    AcWing周赛43 题源:https://www.acwing.com/activity/content/1233/ 4314. 三元组 直接暴力做就是了,我一开始还在找规律..悲 我滴代码 #in ...

  2. 【AcWing】周赛

    A.糖果 题目链接 链接 题目描述 给定三个正整数 a,b,c. 请计算 ⌊a+b+c2⌋,即 a,b,c 相加的和除以 2 再下取整的结果. 输入格式 第一行包含整数 T,表示共有 T 组测试数据. ...

  3. AcWing 44. 分行从上往下打印二叉树

    地址 https://www.acwing.com/problem/content/description/42/ 题目描述从上到下按层打印二叉树,同一层的结点按从左到右的顺序打印,每一层打印到一行. ...

  4. 【AcWing】第 62 场周赛 【2022.07.30】

    AcWing 4500. 三个元素 题目描述 给定一个长度为 \(n\) 的数组 \(r\_1,r\_2,-,r\_n\). 请你找到其中的三个元素 \(r\_a,r\_b,r\_c\),使得 \(r ...

  5. 周赛-Equidistant String 分类: 比赛 2015-08-08 15:44 6人阅读 评论(0) 收藏

    time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...

  6. AcWing 第11场周赛题解

    计算abc 首先 \(0<=a<=b<=c\) 会随机给出 \(a+b,a+c,b+c,a+b+c\)的值 因为\(a,b,c\)都为正整数,所以\(a+b+c\)一定为最大值 然后 ...

  7. PYOJ 44. 【HNSDFZ2016 #6】可持久化线段树

    #44. [HNSDFZ2016 #6]可持久化线段树 统计 描述 提交 自定义测试 题目描述 现有一序列 AA.您需要写一棵可持久化线段树,以实现如下操作: A v p x:对于版本v的序列,给 A ...

  8. xwalk_core_library-15.44.384 .13.aar 百度云分享

    xwalk_core_library-15.44.384.13.aar 这玩意下载很慢 特意放到百度,需要的可以通过百度下载 http://pan.baidu.com/s/1nt0Cmbn 下完后放到 ...

  9. 云计算之路-阿里云上:13:43-13:44之间RDS故障影响了全站的正常访问

    抱歉!13:43-13:44之间,由于阿里云RDS(云数据库)出现2分钟突发故障,影响了全站的正常访问,给大家带来了麻烦,望大家谅解! 故障期间,应用程序日志中记录的错误信息如下: System.Da ...

随机推荐

  1. 微信Native支付

    微信Native支付对接(扫码) 由于有业务需求对接了微信和paypal支付,这边做个记录 微信支付开发文档:https://pay.weixin.qq.com/wiki/doc/api/index. ...

  2. Docker——questions

    服务器的防火墙有什么用?(P14) Tomcat中的webapps.dist这一文件输出目录是用来做什么的?(P15) 容器之间实现数据共享的基础是要在主机有挂载的卷?

  3. 开源版-阿里云人脸搜索M:N,人脸比对1:1

    一.人脸搜索概要 本项目是阿里云视觉智能开放平台的人脸1:N的开源替代,项目中使用的模型均为开源模型,项目支持milvus和proxima向量存储库,并具有较高的自定义能力. 项目使用纯Java开发, ...

  4. WebGPU 计算管线、计算着色器(通用计算)入门案例:2D 物理模拟

    目录 1. WebGL 2. WebGPU 2.1. 适配器(Adapter)和设备(Device) 2.2. 着色器(Shaders) 2.3. 管线(Pipeline) 2.4. 并行(Paral ...

  5. Session Cookie Token Json-Web-Token

    什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明"你是你自己"(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就 ...

  6. 27.Java 飞机游戏小项目

    开篇 游戏项目基本功能开发 飞机类设计 炮弹类设计 碰撞检测设计 爆炸效果的实现 其他功能 计时功能 游戏项目基本功能开发 这里将会一步步实现游戏项目的基本功能. 使用 AWT 技术画出游戏主窗口 A ...

  7. grep 命令?

    强大的文本搜索命令,grep(Global Regular Expression Print) 全局正则表达式搜索.grep 的工作方式是这样的,它在一个或多个文件中搜索字符串模板.如果模板包括空格, ...

  8. Dubbo 如何停机?

    Dubbo 是通过 JDK 的 ShutdownHook 来完成优雅停机的,所以如果使用 kill -9 PID 等强制关闭指令,是不会执行优雅停机的,只有通过 kill PID 时,才 会执行.

  9. uniapp-npm install 进入版本后 优先运行全局安装,在HBuilder X终端输入 npm install 点击回车

    uniapp-npm  install 进入版本后 优先运行全局安装,在HBuilder X终端输入 npm  install 点击回车

  10. Episode 1:正视微信(试播)

    本期是 WEB VIEW 的第一期播客节目. 「不囿于 WEB,不止于 VIEW」,WEB VIEW 是由 yin 和敬礼主持的一档泛科技播客.节目中我们谨慎考量技术进步所带来的优缺点,提倡用「人治」 ...