Codeforces Round #643 (Div. 2)(A, B, C, D, E)

Codeforces Round #643 (Div. 2)

Sequence with Digits

思路

一道暴力题,猜想在某一步一定会出现0,于是怀着忐忑提交了代码,结果还真的是这样。

代码

#include <bits/stdc++.h>using namespace std;typedef long long ll;ll judge(ll x) {int minn = x % 10, maxn = x % 10;ll temp = x;temp /= 10;while(temp) {minn = min(int(temp % 10), minn);maxn = max(int(temp % 10), maxn);temp /= 10;}return x + minn * maxn;
}int main() {// freopen("in.txt", "r", stdin);int t;scanf("%d", &t);while(t--) {ll ans, n;scanf("%lld %lld", &ans, &n);for(ll i = 0; i < n - 1; i++) {ll temp = judge(ans);if(temp == ans) break;ans = temp;}printf("%lld\n", ans);}return 0;
}

Young Explorers

思路

应该是一个贪心吧。

题意是对于一个分数为eee的选手,只能加入人数大于等于eee的组里,所以我们取每一组的最大值刚好等于其人数,这样就最大化的利用了所有的人,当然进行这一步之前必须得先排序。

代码

#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
typedef long long ll;const int N = 2e5 + 10;int a[N];int main() {// freopen("in.txt", "r", stdin);IOS;int t;cin >> t;// scanf("%d", &t);while(t--) {int n;cin >> n;for(int i = 0; i < n; i++)cin >> a[i];int sum = 0, ans = 0;sort(a, a + n);for(int i = 0; i < n; i++) {sum++;if(a[i] <= sum) {sum = 0;ans++;}}cout << ans << "\n";}return 0;
}

Count Triangles

思路

这题是看了别人的思路才写出来的,我一开始一直在枚举zzz边试图去找另外两条边的范围,但是一直wa。

  • 我们考虑枚举x+yx + yx+y的范围, min(c+1,a+b)<=i<=b+cmin(c + 1, a + b) <= i <= b + cmin(c+1,a+b)<=i<=b+c
  • 通过x的最大值我们可以确定y的最小值,同时我们也可以通过x的最小值确定y的最大值。

x=ax = ax=a,最大的ymax=min(i−a,c)y_{max} = min(i - a, c)ymax=min(ia,c),当y=by = by=b,最大的xmax=min(i−b,b)x_{max} = min(i - b, b)xmax=min(ib,b)

通过这个我们可以锁定任意的真正的最小的x∣∣yx || yxy,我们xmin=i−ymaxx_{min} = i - y_{max}xmin=iymaxymin=i−xmaxy_{min} = i - x_{max}ymin=ixmax

这里我们可以得到任意的一段符合条件的x,y的组合,num=(xmax−xmin+1)=(ymax−ymin+1)num = (x_{max} - x_{min} + 1) = (y_{max} - y_{min} + 1)num=(xmaxxmin+1)=(ymaxymin+1)

然后zzz的取值区间长度是long=min(d−c+1,i−c)long = min(d - c + 1, i - c)long=min(dc+1,ic)

我们每次枚举的区间答案就是ans+=num∗longans += num * longans+=numlong

代码

#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
typedef long long ll;int main() {// freopen("in.txt", "r", stdin);IOS;ll a, b, c, d, ans = 0;cin >> a >> b >> c >> d;for(int i = max(a + b, c + 1); i <= b + c; i++) {int x = min(i - b, b), y = min(i - a, c);x = i - x;ll l = min(i - c, d - c + 1);ans += l * (y - x + 1);}cout << ans << "\n";return 0;
}

Game With Array

思路

一道构造题,这题应该是比较好想的,当2∗n>s2 * n > s2n>s的时候,我们至少会出现两个一,然后剩下的全是2,这里我们显然可以得到我们所需要的和为sss的所有二进制数,所以这个是侯一定是不可能有解的。

2∗n<=s2 * n <= s2n<=s的时候我们如何构造,只需要取n−1n - 1n1个一,然后最后一个数是s−n+1s - n + 1sn+1就行了,最后的kkknnn这样就可以保证答案的有解性。

代码

#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
typedef long long ll;int main() {// freopen("in.txt", "r", stdin);IOS;int n, s;cin >> n >> s;if(2 * n > s)   cout << "NO\n";else {cout << "YES\n";for(int i = 0; i < n - 1; i++)cout << "1 ";cout << s - (n - 1) << "\n";cout << n << "\n";}// int t;// cin >> t;// // scanf("%d", &t);// while(t--) {// }return 0;
}

Restorer Distance

思路

因为push和move这两个操作,我们比较容易发现这两个操作好像在最大值最小值两头是等价的,因此当在最大最小值中间可能存在一个最优值,使操作成本最低。

通过上面的分析我们可以大致的得到这是一个凹函数,并且存在最极小值,因此我们可以考虑三分去的到这个最小值。

代码

#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N = 1e5 + 10;int a[N], n, A, R, M;ll f(int x) {ll sum1 = 0, sum2 = 0;//分别记录大于当前值的数量,和小于当前值的数量。for(int i = 1; i <= n; i++) {if(a[i] > x)    sum1 += a[i] - x;else if(a[i] < x)   sum2 += x - a[i];}ll ans = 0;ll mid = min(sum2, sum1);ans += mid * M;sum1 -= mid, sum2 -= mid;//优先考虑从一个移到另一个上。if(sum1)    ans += sum1 * R;if(sum2)    ans += sum2 * A;return ans;
}int main() {// freopen("in.txt", "r", stdin);scanf("%d %d %d %d", &n, &A, &R, &M);M = min(M, A + R);//这个操作可以等同是前两个操作的和,取一个最小值。for(int i = 1; i <= n; i++)scanf("%d", &a[i]);int l = 0, r = 1e9;while(l < r) {int lmid = l + (r - l) / 3;int rmid = r - (r - l) / 3;if(f(lmid) >= f(rmid))  l = lmid + 1;else    r = rmid - 1;}printf("%lld\n", min(f(l), f(r)));return 0;
}

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

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

相关文章

Codeforces Round #741 (Div. 2) E. Rescue Niwen! 字符串 + dp

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个串sss&#xff0c;定义其扩张串为s1,s1s2,...,s1s2..sn,s2,s2s3,...,sns_1,s_1s_2,...,s_1s_2..s_n,s_2,s_2s_3,...,s_ns1​,s1​s2​,...,s1​s2​..sn​,s2​,s2​s3​,...,sn​&#xff0c;现在让…

梯度下降:求线性回归

梯度下降的直线拟合 实现说明 给定若干个x,yx, yx,y并且求得一个最佳的yaxby ax byaxb&#xff0c;也就是二元一次方程组的解。 先放上给定的散点&#xff0c;以及求得的线性回归的直线的图片。 我个人认为&#xff0c;这里的梯度优化&#xff0c;就是通过一个关键式子los…

Codeforces Round #268 (Div. 1) C. Hack it! 数位dp + 构造数位

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 定义f(x)f(x)f(x)表示xxx的十进制下数位和&#xff0c;现在给你aaa&#xff0c;让你选一个区间[l,r][l,r][l,r]&#xff0c;满足∑ilrf(i)moda0\sum_{il}^rf(i)\bmod a0∑ilr​f(i)moda0。 1≤a≤1e181\le a…

3分钟了解数据库事务

事务是由几个读取和修改数据的sql命令组成的&#xff0c;但是知道commit命令被执行之后&#xff0c;修改操作才被认为是正常的完成。显式事务常以Begin tran语句开头&#xff0c;以commit tran或者rollback tran语句结尾的。事务具有acid属性原子性&#xff08;atomicity&#…

D. The Best Vacation(贪心+前缀和+二分)

The Best Vacation 思路 前缀和加贪心 贪心&#xff1a;我们的结尾点一定是在某一个月的最后一天。 贪心部分证明&#xff1a;我们选定两组数 Aan−2,an−1,an,b1,b2,b3……bn−2,bn−1A a_{n - 2}, a_{n - 1}, a_{n}, b_{1}, b_{2}, b_{3}……b_{n - 2}, b_{n - 1}Aan−2…

P4396 [AHOI2013]作业 cdq分治

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个长度为nnn的数列aaa&#xff0c;有qqq个询问&#xff0c;每次询问[l,r][l,r][l,r]中值域在[a,b][a,b][a,b]中的数出现的次数和在[a,b][a,b][a,b]中出现过的数值个数。 n≤1e5,1≤a≤1e5n\le1e5,1\le…

WebClient, HttpClient, HttpWebRequest ,RestSharp之间的区别与抉择

NETCore提供了三种不同类型用于生产的REST API&#xff1a; HttpWebRequest;WebClient;HttpClient&#xff0c;开源社区创建了另一个名为RestSharp的库。如此多的http库&#xff0c;该怎样选择呢&#xff1f;01HttpWebRequest这是.NET创建者最初开发用于使用HTTP请求的标准类。…

树的直径与重心

树的直径与重心 或许更好的阅读体验 树的直径求解方法一 思路 先选取一个点rt作为根节点&#xff0c;dfs去找到一个最长路径的点U&#xff0c;然后通过这个点去dfs&#xff0c;找到路径最长的点V&#xff0c;U->V就是这课树的直径。 证明正确性&#xff1a; 假如rt在直…

Codeforces Round #446 (Div. 1) B. Gluttony 构造 + 补集思想

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个数组aaa&#xff0c;保证aaa中每个数都互不相同&#xff0c;让你构造一个数组bbb&#xff0c;满足对于任意的Sx1,x2,...,xk,1≤xi≤n,0≤k<nS{x_1,x_2,...,x_k},1\le x_i\le n,0\le k< nSx1​…

.NetCore 2.1以后的HttpClient最佳实践

ASP.NET Core 2.1中出现一个新的HttpClientFactory功能&#xff0c;它有助于解决开发人员在使用HttpClient实例从其应用程序发出外部Web请求时可能遇到的一些常见问题。01介绍在.NETCore平台的2.1新增了HttpClientFactory&#xff0c;虽然HttpClient这个类实现了disposable&…

D. Multiset(树状数组 + 二分)

Multiset 可能更好的阅读体验 思路 二分 树状数组做法 我们发现每个数的范围是$ < 1e6$的&#xff0c;所以可以直接在线操作&#xff0c;不用离散化离线操作。 这个时候我们的treetreetree数组就相当与一个桶&#xff0c;每个桶里统计的是值为其下标的个数&#xff0c…

Codeforces Round #381 (Div. 1) A. Alyona and mex 构造

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 你需要确定一个长度为nnn的数组aaa&#xff0c;满足给定的mmm个[l,r][l,r][l,r]限制&#xff0c;需要保证构造出来的aaa数组对于每个[l,r][l,r][l,r]的mexmexmex最小值最大。 n,m≤1e5n,m\le1e5n,m≤1e5 思…

点分治(简要讲解 + 模板)

树上点分治 思想 两个点之间的距离无非就是两种关系&#xff1a;我们约定dis[i]dis[i]dis[i]表示这个点到当前根节点的距离 dis[u]dis[v]dis[u] dis[v]dis[u]dis[v]&#xff0c;在同一个根节点的不同子树上。dis[u]dis[v]dis[u] dis[v]dis[u]dis[v]&#xff0c;在同一个棵子…

在 alpine 中使用 NPOI

在 alpine 中使用 NPOIIntro在 .net 中常使用 NPOI 来做 Excel 的导入导出&#xff0c;NPOI 从 2.4.0 版本开始支持 .netstandard2.0&#xff0c;在 dotnet core 应用也可以用 DotNetCore.NPOI。对于 .NET Core 应用来说&#xff0c;如果没有特殊的需求&#xff0c;alpine 是最…

Educational Codeforces Round 16 C. Magic Odd Square 矩阵构造

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个奇数nnn&#xff0c;让你构造一个n∗nn*nn∗n的矩阵&#xff0c;矩阵的每个位置依次填上[1,n∗n]之内的数[1,n*n]之内的数[1,n∗n]之内的数&#xff0c;满足每行、每列、以及主对角线的和都是奇数。…

关于WCF、WebAPI、WebService之间的区别总结 分布式通信技术

早在1996年Gartner就前瞻性地提出了面向服务架构的思想(SOA)&#xff0c;SOA 的走红在很大程度上归功于 Web Service 标准的成熟和应用的普及。Service Oriented Ambiguity 中文一般理解为&#xff1a;面向服务架构&#xff0c;简称SOA&#xff0c;这个概念算得上微服务的鼻祖了…

LCA求解的四种模板

LCA求解的四种模板 或许更好的阅读体验 树剖在线求解LCA 思想 树剖这里就不多解释了&#xff0c;求解LCA的过程就是轻重链的跳转&#xff0c;跟树剖求任意两点间的距离一样的操作&#xff0c;只不过不用线段树去维护disdisdis了&#xff0c;那就直接上代码吧。 代码 #inc…

HDU - 1998 奇数阶魔方

传送门 文章目录题意&#xff1a;思路&#xff1a;题意&#xff1a; 给你一个奇数nnn&#xff0c;构造一个nnn阶幻方。 3≤n≤193\le n\le 193≤n≤19 思路&#xff1a; 模板题了&#xff0c;直接构造一个幻方即可。 首先在第一行中间放一个111&#xff0c;之后每次看一下(…

Azure 物联网开发者体验 7 月更新:边缘计算开发工具,ARM64 设备开发,VS Code 容器化开发工具...

欢迎来到 Azure 物联网开发者体验的 7 月更新&#xff01;在本次发布中&#xff0c;微软为物联网开发人员提供了许多新的功能和改进&#xff01;物联网边缘计算开发工具正式发布Azure IoT Edge 于 2017 年发布。随着近两年的对边缘计算开发工具的不断开发与改善&#xff0c;Azu…

Tarjan缩点

Tarjan缩点 或许更好的阅读体验 P3387 【模板】缩点 思路 既然时缩点的模板&#xff0c;那么缩点自然少不了了&#xff0c;缩点后我们的到新的有向无环图&#xff0c;然后再利用这个无环图去找一条最大权值的路径&#xff0c;路径和即为答案。 我们改如何选取起点来避免不…