1. AtCoder Beginner Contest 293(C,D ,E,F) 2023-03-17 2. Educational Codeforces Round 115 (Rated for Div. 2)(D,E) 2023-03-18 3. AtCoder Beginner Contest 294(E,F,G) 2023-04-03 4. AtCoder Beginner Contest 246 2023-03-29 5. 中国石油大学(北京)第三届“骏码杯”程序设计竞赛(同步赛)(D,E,F) 2023-03-25 6. Codeforces Global Round 16(D,E,F) 2023-03-25 7. AtCoder Beginner Contest 209(D,E) 2023-05-08 8. Monoxer Programming Contest 2022(AtCoder Beginner Contest 238)(E,F) 2023-05-07 9. AtCoder Beginner Contest 285(B,D,E,F) 2023-05-06 10. AtCoder Beginner Contest 242(D,E) 2023-05-03 11. AtCoder Beginner Contest 223(D,E,F) 2023-04-15 12. AtCoder Beginner Contest 207(D,E) 2023-04-11 13. AtCoder Beginner Contest 247(E,F) 2023-04-10 14. AtCoder Beginner Contest 226(E,F,G) 2023-04-05 15. AtCoder Beginner Contest 229(F,G) 2023-06-23 16. AtCoder Beginner Contest 273(E) 2023-06-13 17. AtCoder Beginner Contest 286(G) 2023-06-02 18. AtCoder Beginner Contest 287(C,D,E,F) 2023-06-01 19. AtCoder Beginner Contest 288(D,E,F) 2023-05-31 20. AtCoder Beginner Contest 289(E,F) 2023-05-30 21. AtCoder Beginner Contest 290(D,E) 2023-05-29 22. AtCoder Beginner Contest 292(E,F,G) 2023-05-28 23. AtCoder Beginner Contest 298(D,F) 2023-05-27 24. AtCoder Beginner Contest 299(E,F) 2023-05-27 25. AtCoder Beginner Contest 300(E,F) 2023-05-25 26. AtCoder Beginner Contest 302(E,F,G) 2023-05-24 27. AtCoder Beginner Contest 253(E,F) 2023-05-17 28. AtCoder Beginner Contest 245(D,E,F) 2023-05-15 29. AtCoder Beginner Contest 248(D,E,F) 2023-05-14 30. AtCoder Beginner Contest 206(Sponsored by Panasonic)(E,F) 2023-05-09 31. Codeforces Round 875 (Div. 2)(D) 2023-07-08 32. AtCoder Beginner Contest 178(E,F) 2023-07-08 33. AtCoder Beginner Contest 307(E,F,G) 2023-07-01 34. CodeTON Round 5 (Div. 1 + Div. 2, Rated, Prizes!)C 2023-06-30 35. Educational Codeforces Round 151 (Rated for Div. 2)(C,D) 2023-06-30 36. AtCoder Beginner Contest 212(E,F) 2023-06-24 37. 牛客小白月赛51 2022-12-09 38. 2022年浙大城市学院新生程序设计竞赛(同步赛)(补题) 2022-12-11 39. Codeforces Round #770 (Div. 2)B,C 2022-12-24 40. Codeforces Global Round 24(B,C) 2022-12-23 41. Codeforces Round #836 (Div. 2)C 2022-12-21 42. Codeforces Round #840 (Div. 2) C 2022-12-20 43. Good Bye 2022: 2023 is NEAR C 2022-12-31 44. Codeforces Round #765 (Div. 2)A,B,C 2022-12-31 45. Codeforces Round #766 (Div. 2)C,D 2022-12-29 46. Codeforces Round #841 (Div. 2) and Divide by Zero 2022 2022-12-28 47. Codeforces Round #767 (Div. 2)C ,D 2022-12-27 48. Codeforces Round #768 (Div. 2)C ,D 2022-12-26 49. Codeforces Round #769 (Div. 2) B,C 2022-12-25 50. Educational Codeforces Round 122 (Rated for Div. 2),C,D 2022-12-25 51. Educational Codeforces Round 119 (Rated for Div. 2) 2023-01-14 52. AtCoder Beginner Contest 258 2023-01-13 53. Codeforces Round #763 (Div. 2)C 2023-01-12 54. Codeforces Round #843 (Div. 2)(B,C,D,E) 2023-01-12 55. Educational Codeforces Round 141 (Rated for Div. 2)(B,C,D) 2023-01-10 56. AtCoder Beginner Contest 275(B,C,D,E,F) 2023-01-09 57. Codeforces Round #842 (Div. 2)(B,D,E) 2023-01-09 58. AtCoder Beginner Contest 284(D,E,F) 2023-01-08 59. The 14th Jilin Provincial Collegiate Programming Contest(补题) 2023-01-07 60. 牛客小白月赛65(C,D,E,F) 2023-01-07 61. AtCoder Beginner Contest 281(D,E,F) 2023-01-05 62. Good Bye 2021: 2022 is NEAR D 2023-01-05 63. Hello 2023 2023-01-04 64. The 15th Jilin Provincial Collegiate Programming Contest(补题) 2023-01-03 65. Codeforces Round #781 (Div. 2)C 2023-01-02 66. Hello 2022(B,D) 2023-01-01 67. AtCoder Beginner Contest 272(D,E) 2023-03-10 68. Codeforces Round 751 (Div. 2)(D) 2023-03-08 69. Codeforces Round 856 (Div. 2)(C,D) 2023-03-08 70. Codeforces Round 752 (Div. 2)(C,D,E) 2023-03-08 71. Codeforces Round 855 (Div. 3)(E,F) 2023-03-05 72. AtCoder Regular Contest 131(A,B,C) 2023-03-05 73. Educational Codeforces Round 144 (Rated for Div. 2)(A,B,C,D) 2023-03-05 74. Codeforces Round 853 (Div. 2)(C,D) 2023-03-03 75. 牛客练习赛109(C,D) 2023-03-03 76. AtCoder Beginner Contest 291(Sponsored by TOYOTA SYSTEMS)(D,E,F) 2023-03-01 77. Educational Codeforces Round 143 (Rated for Div. 2)(A,C,D) 2023-02-28 78. Codeforces Round #852 (Div. 2)(C,D) 2023-02-13 79. Educational Codeforces Round 118 (Rated for Div. 2)(D,E) 2023-02-09 80. AtCoder Beginner Contest 236(D,E,F) 2023-02-09 81. Codeforces Round #850 (Div. 2, based on VK Cup 2022 - Final Round)(B,D) 2023-02-08 82. Codeforces Round #848 (Div. 2)(B,C,D) 2023-02-07 83. TypeDB Forces 2023 (Div. 1 + Div. 2, Rated, Prizes!) (B,C,D) 2023-02-07
84. Codeforces Round #846 (Div. 2)(B,E) 2023-02-07 85. Educational Codeforces Round 142 (Rated for Div. 2)(C,D) 2023-02-04 86. 2023牛客寒假算法基础集训营6 2023-02-04 87. Codeforces Round #845 (Div. 2) and ByteRace 2023(A,B,C) 2023-02-02 88. 2023牛客寒假算法基础集训营5 2023-02-02 89. 2023牛客寒假算法基础集训营3 2023-01-21 90. 2023牛客寒假算法基础集训营2 2023-01-19 91. 2023牛客寒假算法基础集训营1 2023-01-18 92. Educational Codeforces Round 120 (Rated for Div. 2) C,D 2023-01-15 93. AtCoder Beginner Contest 254(C,D,E,F) 2023-01-15
TypeDB Forces 2023 (Div. 1 + Div. 2, Rated, Prizes!) (B,C,D)
B
B
这道题的大意是给你一个数 ,我们可以把这个 ,变成 ,如果变成这样的形式,我们可以得到一个值
,我们要把这个数变得尽量的大,但是这里面的 只能是任意个不同的质数(x是由不同的质数相乘得到的)
对于这个 ,我们先可以把他变成 ,然后对于幂次,如果是1,那么我们可以使用一次,可以,对于幂次为2的,我们可以让他使用两次,最后一次是第 次,可以让 ,对于幂次为3的,可以利用 次,那么对于第三段,这里面的数幂次都是大于等于 的
那么我们可以求一个数组 是 到最大幂次(我们这里用 ),的数的乘积,这里面所有的数都只会出现一次,符合条件,而且每一个数都在最大价值的用到了
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
using namespace std ;
#define int long long
int t,n;
void solve ()
{
cin >>n;
map <int ,int >cnt;
for (int i=2 ;i*i<=n;i++)
{
if (n%i==0 )
{
int tot=0 ;
while (n%i==0 )
{
n/=i;
tot++;
}
cnt[i]=tot;
}
}
if (n>1 )
{
cnt[n]=1 ;
}
vector <int >sum(40 ,1 );
for (auto [x,tot]:cnt)
{
sum[tot]*=x;
}
for (int i=30 ;i>=1 ;i--)
{
sum[i]*=sum[i+1 ];
}
int ans=0 ;
for (int i=1 ;i<=30 ;i++)
{
if (sum[i]>1 )
{
ans+=sum[i];
}
}
cout <<ans<<'\n' ;
return ;
}
signed main ()
{
cin >>t;
while (t--)
{
solve();
}
system ("pause" );
return 0 ;
}
C
C
这个题大意是给出一个长度为 的数,还有一个 ,我们需要构造两个数组 和 ,
并且满足 和
我们也可以得到一个 ,其中 的公式求出如下
然后对于 和 ,我们要怎么构造呢
反正是乘法,那我们要尽量大的和大的相乘,那么 或者 ,要么是那个可以成为的最大的那一个,要么是较小的那一个,那么我们可以记录每一个 ,我们都可以得到一个 ,然后再求最小
我们还用到了
说明这 是 ,那么 就是
说明这 是 ,那么 就是
然后按照题目中给出的求
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std ;
const int maxn=2e5 +10 ;
#define int long long
int f[maxn][2 ];
int a[maxn],mi[maxn],mx[maxn];
int n,t,s;
void solve ()
{
cin >>n>>s;
for (int i=1 ;i<=n;i++)
{
cin >>a[i];
if (a[i]>=2 *s)
{
mi[i]=s;
mx[i]=a[i]-s;
}
else if (a[i]>=s)
{
mx[i]=s;
mi[i]=a[i]-s;
}
else
{
mi[i]=0 ;
mx[i]=a[i];
}
}
f[2 ][0 ]=a[1 ]*mi[2 ];
f[2 ][1 ]=a[1 ]*mx[2 ];
for (int i=3 ;i<n;i++)
{
f[i][0 ]=min(f[i-1 ][0 ]+mx[i-1 ]*mi[i],f[i-1 ][1 ]+mi[i-1 ]*mi[i]);
f[i][1 ]=min(f[i-1 ][0 ]+mx[i-1 ]*mx[i],f[i-1 ][1 ]+mi[i-1 ]*mx[i]);
}
int ans=min(f[n-1 ][0 ]+mx[n-1 ]*a[n],f[n-1 ][1 ]+mi[n-1 ]*a[n]);
cout <<ans<<'\n' ;
return ;
}
signed main ()
{
cin >>t;
while (t--)
{
solve();
}
system ("pause" );
return 0 ;
}
D
D
这个题大意是我们一开始在 的位置,如果我们走到了 位置上,那么下一步我们可以走到 上
我们可以把 变成一个 ,( 可以是 ) ,如果走到的位置 , ,那么他还需要继续走,如果不在这一个范围里,那么说明他可以不再走了,游戏结束
我们可以把 变成 ,可以让我们游戏结束可以确定是走了多少步的改变有多少种(不出现死循环)
我们有两种不同的情况
如果从 就可以直接结束,那么有太多种了,就算是 到不了的点不管怎么改变都可以
所谓正难则反,我们就用所有的改变方法,再减去那些会达到死循环的变化
对于那些可以不会进入死循环的那些点,如果要再是进入那些不会进行死循环的点,那么就相当于这个路程已经出现了循环,那么是不可的
还不可以进入那些本来就是死循环的节点,也是不可
所以不可变成的有 个(我们反向建图,对于那些出界的点,我们一律记为 ,从 出发, 是从0到达 有多少个节点,用到 如果用到要记得减一,不包括本身 )
如果从 出发就是一个死循环,那么对于从 到 这一路,没有出现循环之前,每一个点都有以下几种改变可以让这个路径变成可以到达点
如果此时在 点
第一种,直接出界,我们发现,每一个位置,都有 个可以直接变成点 ,(这里的 不是单纯的 ,而是绝对值大于 的数)
第二种,从 走到那些可以到达 的位置,而且那些一定位置一定是没出界的,所以不会重复,有 个点
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std ;
#define int long long
const int maxn=2e5 +10 ;
int n,t;
vector <int >g[maxn];
int siz[maxn],f[maxn],a[maxn];
vector <bool >vis;
void dfs (int u)
{
siz[u]=1 ;
for (auto v:g[u])
{
dfs(v);
siz[u]+=siz[v];
}
return ;
}
void solve ()
{
cin >>n;
vis=vector <bool >(n+1 ,false );
for (int i=0 ;i<=n;i++)
{
g[i].clear();
siz[i]=0 ;
}
for (int i=1 ;i<=n;i++)
{
cin >>a[i];
int nxt=i+a[i];
if (nxt>n||nxt<=0 ) nxt=0 ;
g[nxt].push_back(i);
f[i]=nxt;
if (nxt==0 ) vis[i]=true ;
}
dfs(0 );
int ans=0 ;
if (siz[1 ])
{
ans=n*(2 *n+1 );
int u=1 ;
while (u)
{
ans-=siz[u];
ans-=(n-(siz[0 ]-1 ));
u=f[u];
}
}
else
{
vector <int >v(n+1 ,0 );
int u=1 ;
while (u)
{
if (v[u]) break ;
v[u]=1 ;
ans+=n+1 ;
ans+=siz[0 ]-1 ;
u=f[u];
}
}
cout <<ans<<'\n' ;
return ;
}
signed main ()
{
cin >>t;
while (t--)
{
solve();
}
system ("pause" );
return 0 ;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)