SDUT 2023 summer team contest(for 22) - 10

H - Exam

题意:就是给你一个数N,和一个方案数K,初始值为1,你有三种操作方式让值恰为N

1:自身加1;        2:加上X;       3:自身乘以7;

要你确定一X使得你的方案数恰好为K

思路:一开始根本没有去想dp,只是感觉是一个组合数之类得题,赛后与其他队交流了一下,说是dp。。。(dp真是🔪我千百遍啊。。)思路见注释

#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl "\n"
const int N = 2e5 + 10;
const int INF = 1e18;
const int mod = 1e9 + 7;
int n, k, ads, m, t, x, ans, a[N], ad, jd, f[N];
string s;
void ClearFloat()
{ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
}
int read()
{int ret = 0, f = 1;char ch = getchar();while ('0' > ch || ch > '9'){if (ch == '-')f = -1;ch = getchar();}while ('0' <= ch && ch <= '9'){ret = ret * 10 + ch - '0';ch = getchar();}return ret * f;
}
/*
状态表示:f[i]表示和为i的所有集合
属性:方案数量
状态计算:f[i]+=f[i-1]f[i]+=f[i-x];(前提大于x)f[i]+=f[i/7];(前提为7的倍数)
*/
signed main()
{n = read(), m = read();for (int i = 2; i < n; i++){for (int j = 0; j <= n; j++)//每次枚举一个x都要初始化为0f[j] = 0;f[1] = 1; // 初始化f[1]为1,因为到达1的方式只有一种那就是初始状态for (int j = 1; j <= n; j++){f[j] += f[j - 1]; // 其通过1操作可以到达if (j > i)f[j] += f[j - i]; // 或者j大于x时,通过2操作到达,注意一定要大于,应为初始值为1if (j % 7 == 0)       // 或者为7的倍数,通过操作3来到达此时的值,f[j] += f[j / 7];}if (f[n] == m) // 由于枚举顺序由小到达,故一定为最优解{printf("%lld\n", i);return 0;}}printf("0\n");
}

D - 38 parrots

题意:就是给你一个数n,接下来n个操作,+加入一个动物的长度,--减去最前面的一个动物操作,询问当前有没有一个动物可以用其的倍数来表示全部的动物长度在,

思路:我们想这一定和区间最大公约数有关,但是如果不超时的维护他们呢,很明显我们维护区间最大公约数和区间最小值,因为我们知道,这个动物的长度一定是最小的,且一定是区间最大公约数,因此我们可以考虑用线段树来维护,且可以离线的操作,只需要动态根据加操作和减操作来更新查询的左右区间即可(我们甚至不用维护区间和,因为根本没有用

#include <bits/stdc++.h>
using namespace std;
#define pi acos(-1)
#define xx first
#define yy second
#define endl "\n"
#define lowbit(x) x & (-x)
#define int long long
#define ull unsigned long long
#define pb push_back
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
#define max(a, b) (((a) > (b)) ? (a) : (b))
// #define min(a, b) (((a) < (b)) ? (a) : (b))
#define Ysanqian ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
const int N = 6e5 + 10, M = 1010, inf = 0x3f3f3f3f, mod = 18446, P = 13331;
const double eps = 1e-8;
string s[N];
// map<int, int> mp;
int w[N], cnt, n;
struct Node
{int l, r;int sum, d;int minn;
} tr[N * 4];int gcd(int a, int b)
{return b ? gcd(b, a % b) : a;
}
void pushup(Node &u, Node &l, Node &r)
{u.sum = l.sum + r.sum;u.minn = min(l.minn, r.minn);u.d = gcd(l.d, r.d);
}
void pushup(int u)
{pushup(tr[u], tr[u << 1], tr[u << 1 | 1]);
}
void build(int u, int l, int r)
{if (l == r){int b = w[r];tr[u] = {l, r, b, b, b};}else{tr[u].l = l, tr[u].r = r;int mid = l + r >> 1;build(u << 1, l, mid), build(u << 1 | 1, mid + 1, r);pushup(u);}
}
Node query(int u, int l, int r)
{if (tr[u].l >= l && tr[u].r <= r)return tr[u];else{int mid = tr[u].l + tr[u].r >> 1;if (r <= mid)return query(u << 1, l, r);else if (l > mid)return query(u << 1 | 1, l, r);else{auto left = query(u << 1, l, r);auto right = query(u << 1 | 1, l, r);Node res;pushup(res, left, right);return res;}}
}
void solve()
{cin >> n;for (int i = 1; i <= n; i++){cin >> s[i];if (s[i][0] == '+'){string p = s[i].substr(1);int x = stoi(p);w[++cnt] = x;}}build(1, 1, cnt);int l = 1, r = 0;for (int i = 1; i <= n; i++){if (s[i][0] == '+'){r++;}else if (s[i][0] == '-'){l++;}else{int x = query(1, l, r).d;int y = query(1, l, r).minn;if (x == y)cout << "Y" << x << endl;elsecout << "N" << endl;}}
}
signed main()
{Ysanqian;int T;T = 1;// cin >> T;while (T--)solve();return 0;
}

A - Normal Magic Square

 思路:就是求其1~n方的和除以行数即可,可以用等差数列求和

就不放代码了

J - Multidimensional Points

 思路:很明显就是一个前缀和,即可

I - Hole Punch

 思路:将其分解约数,除去1(最后一并输出1)和本身,如果除以这个因子为偶数则输出即可,

注意输出顺序

#include <bits/stdc++.h>
using namespace std;
#define pi acos(-1)
#define xx first
#define yy second
#define endl "\n"
#define lowbit(x) x & (-x)
#define int long long
#define ull unsigned long long
#define pb push_back
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
#define max(a, b) (((a) > (b)) ? (a) : (b))
#define min(a, b) (((a) < (b)) ? (a) : (b))
#define Ysanqian ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
const int N = 1e6 + 10, M = 1010, inf = 0x3f3f3f3f, mod = 18446, P = 13331;
const double eps = 1e-8;
int n, ans;
vector<int> g;
priority_queue<int, vector<int>, greater<int>> q;
void fun(int x)
{for (int i = 1; i <= x / i; i++){if (x % i == 0){g.pb(i);if (x / i != i)g.pb(x / i);}}
}
void solve()
{cin >> n;fun(n);for (auto ed : g){if (ed != 1 && ed != n && n % ed == 0 && n / ed % 2 == 0){q.push(ed);ans++;}}cout << ans + 1 << endl;cout << 1 << ' ';while (q.size()){int u = q.top();cout << u << ' ';q.pop();}
}
signed main()
{Ysanqian;int T;T = 1;// cin >> T;while (T--)solve();return 0;
}

E - Black Box

题意:就是给你一个倒叙的01串,他是由原01串,左移位数,相加得来的,求原01串,注意倒序输出

思路:我们可以发现其与原串相加一定是0000长度不一定(以题目的n==4为例)

然后就是如何计算了,我们发现,我们只要让原串与给定串第一个不为0的地方相同,其余后面的取反,前面同为0,即可得到原串。

例如样例1101,第一位就不是0,那么我们这位取1,其余取反,答案就是1010

又如0010  , 原串就是0011,第三位才位1,我们前两位取0第三与其相同,后面取反即可

#include <bits/stdc++.h>
using namespace std;
#define pi acos(-1)
#define xx first
#define yy second
#define endl "\n"
#define lowbit(x) x & (-x)
#define int long long
#define ull unsigned long long
#define pb push_back
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
#define max(a, b) (((a) > (b)) ? (a) : (b))
#define min(a, b) (((a) < (b)) ? (a) : (b))
#define Ysanqian ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
const int N = 1e6 + 10, M = 1010, inf = 0x3f3f3f3f, mod = 18446, P = 13331;
const double eps = 1e-8;
int n;
string s;
void solve()
{cin >> n;cin >> s;int i = 0;while (s[i] == '0'){i++;cout << '0';}if (i < s.size())cout << '1';i++;for (i; i < s.size(); i++){if (s[i] == '0')cout << '1';elsecout << '0';}
}
signed main()
{Ysanqian;int T;T = 1;// cin >> T;while (T--)solve();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/20269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023华数杯数学建模竞赛选题建议

提示&#xff1a;DS C君认为的难度&#xff1a;C<B<A&#xff0c;开放度&#xff1a;B<A<C 。 A题&#xff1a;隔热材料的结构优化控制研究 A题是数模类赛事很常见的物理类赛题&#xff0c;需要学习不少相关知识。 其中第一问需要建立平纹织物整体热导率与单根纤…

偶数科技亮相第十届中国中小企业投融资交易会

第十届中国中小企业投融资交易会暨2023“小企业 大梦想”高峰论坛近日在北京举办。本届大会以“金融活水精准滴灌 专精特新体制增量”为主题&#xff0c;通过展览展示、论坛活动、项目路演、产融对接等形式&#xff0c;搭建了专精特新企业与金融机构之间、与地方政府之间的产融…

华为云hcip核心知识笔记(存储服务规划)

云上存储 &#xff1a; 云硬盘:基于分布式架构&#xff0c;可弹性扩展的虚拟块存储服务 注意事项 挂载云硬盘实例和云硬盘必须在同一区域&#xff0c;否则挂载失败文件存储服务&#xff1a;完全托管的共享文件存储 可以为多个实例实现共享访问&#xff0c;不同vpc中可以进行对…

[RocketMQ] Consumer 负载均衡服务 RebalanceService入口源码 (十五)

RocketMQ一个消费者组中可以有多个消费者, 在集群模式下他们共同消费topic下的所有消息, RocketMQ规定一个消息队列仅能被一个消费者消费, 但是一个消费者可以同时消费多个消息队列。需要负载均衡服务RebalanceService来进行消息队列分配的重平衡。使用负载均衡服务RebalanceSe…

stm32 mpu6050 cubemx DMP法读取角度

文章目录 前言一、相关文件二、cubemx配置三、代码变量初始化主循环 总结 前言 文件 记录使用dmp库来读取mpu6050的角度。 这是参考文件 参考1–主要参考 github参考 参考2 参考三 一、相关文件 相关文件在这里下载&#xff08;未填&#xff0c;不过可以在上面的git中下载&a…

LPython:最新的高性能Python实现、速度极快且支持多后端

LPython 是最新的开源 Python 实现&#xff0c;目标是打造高性能版本的 Python。 LPython 官网写道&#xff0c;它一直作为 Python 编译器在开发&#xff0c;能够生成优化的机器代码。LPython 的后端支持 LLVM、C/C 翻译&#xff0c;甚至还支持 WebAssembly (WASM)。 LPython 主…

从0到1开发go-tcp框架【3-读写协程分离、引入消息队列、进入连接管理器、引入连接属性】【基础篇完结】

从0到1开发go-tcp框架【3-读写协程分离、引入消息队列、进入连接管理器、引入连接属性】 1 读写协程分离[v0.7] 添加一个Reader和Writer之间通信的channel添加一个Writer goroutineReader由之前直接发送给客户端改为发送给通信channel启动Reader和Writer一起工作 zinx/znet/co…

使用火山云搜索ESCloud服务构建图文检索应用(以文搜图/以图搜图)

图文检索在生活中具有广泛的应用&#xff0c;常见的图片检索包括基于文本内容搜索和基于图片内容搜索。用户通过输入文字描述或上传图片就可以在海量的图片库中快速找到同款或者相似图片&#xff0c;这种搜索方式被广泛应用于电商、广告、设计以及搜索引擎等热门领域。 本文基…

在CSDN学Golang场景化解决方案(微服务架构设计)

一&#xff0c;聚合器微服务设计模式 在Golang微服务架构设计中&#xff0c;聚合器&#xff08;Aggregator&#xff09;微服务设计模式是一种常见的应用程序体系结构模式。该模式旨在简化客户端与后端微服务之间的通信&#xff0c;并支持更高级别的操作&#xff0c;例如聚合多…

Vue3文本省略(Ellipsis)

APIs 参数说明类型默认值必传maxWidth文本最大宽度number | string‘100%’falseline最大行数numberundefinedfalsetrigger展开的触发方式‘click’undefinedfalsetooltip是否启用文本提示框booleantruefalsetooltipMaxWidth提示框内容最大宽度&#xff0c;单位px&#xff0c;…

亚马逊云科技发布Amazon HealthScribe,使用生成式AI技术实现临床文档的自动生成

近日&#xff0c;亚马逊云科技在纽约峰会上推出了Amazon HealthScribe&#xff0c;该服务符合HIPAA&#xff08;《健康保险流通与责任法案》&#xff09;的相关要求&#xff0c;可为医疗软件供应商提供一种基于语音和文字识别的生成式AI技术&#xff0c;帮助其创建能够自动生成…

简-理解Python的装饰器、迭代器和生成器底层原理

装饰器、迭代器和生成器是 Python 中的高级功能&#xff0c;它们分别用于扩展函数或方法的功能、遍历容器元素和创建简洁的迭代器。 装饰器 装饰器是一个用于修改或扩展函数或方法的功能的函数。装饰器接受一个函数作为参数&#xff0c;并返回一个新的函数&#xff0c;新函数通…

APUE学习62章终端(二): stty命令特殊字符终端标志

1. stty命令 stty命令的英文解释: 很明显stty有一个-F参数 所以准确的说: stty命令是设置当前终端驱动程序(也有可能直接配置了硬件&#xff0c;这点目前不清楚)的属性&#xff0c;使当前终端的驱动程序能够使能/去使能一些特殊字符的识别与处理等等 2. stty命令的结构 3. 终端…

使用vuex让购物车联动

// 1.vuex点击加减触发函数提交仓库把我们请求的数据存到仓库 2.在仓库定义这个函数和对象 把我们存进去的数据存起来 // 3。在我们需要的页面拿出数据&#xff0c;然后循环就可以 // 4.当我们点击加号就触发函数然后在vuex对这个数据进行处理 // 5.对我们点进来的数据进行一个…

【SLAM】LoFTR知多少

1. LoFTR: Detector-Free Local Feature Matching with Transformers PAPER 论文 | LoFTR: Detector-Free Local Feature Matching with Transformers 代码 | CODE: 关键词 | detector-free, local feature matching LoFTR知多少 1. LoFTR: Detector-Free Local Feature M…

O3DE的Pass

Pass介绍 Pass是具有输入和输出的渲染过程。 在最终渲染帧中看到的每个细节都是通过一系列Pass&#xff08;前一个Pass的输出是下一个Pass的输入&#xff09;计算出来的。Pass可以生成图像&#xff08;作为纹理、缓冲区或渲染目标&#xff09;。每个图像都包含关于场景的特定…

不藏了!极狐GitLab 向你介绍一位研发效能「六边形战士」

怎么用数字说清研发效能&#xff1f; 总是觉得研发资源不够用&#xff1f; 高效工作全靠领导盯&#xff1f; 不问不知道项目推迟发布&#xff1f; 代码泄漏了才紧急采取措施&#xff1f; 是时候甩开这些“研发人的 PTSD”了&#x1f623; 极狐星&#xff0c;给专业的你更…

Unity Shader:常用的C#与shader交互的方法

俗话说久病成医&#xff0c;虽然不是专业技术美术&#xff0c;但代码写久了自然会积累一些常用的shader交互方法。零零散散的&#xff0c;总结如下&#xff1a; 1&#xff0c;改变UGUI的材质球属性 有时候我们需要改变ui的一些属性&#xff0c;从而实现想要的效果。通常UGUI上…

Spring如何通过三级缓存解决循环依赖问题?

目录 一、什么是Spring 二、循环依赖问题 三、三级缓存机制 四、如何通过三级缓存解决循环依赖问题 一、什么是Spring Spring框架是一个开源的Java应用程序开发框架&#xff0c;提供了一种全面的、一致的编程模型&#xff0c;用于构建企业级应用程序和服务。它由Rod Johnso…

多个List 合并变成一个List+一个List 根据某个字段相等的另一个字段相加,并排序变成新的List

List<CurveTimeAndValueDomain> curves new ArrayList<>();for (int i 0; i < columnNames.size(); i){if (columnNames.get(i).equals(PlantConstant.TENDOWNFX) || columnNames.get(i).equals(PlantConstant.TENDOWNQP)) {//10千伏以下 数据 进行缓慢处理cu…