AtCoder Beginner Contest 207(D,E)
1.AtCoder Beginner Contest 293(C,D ,E,F)2.Educational Codeforces Round 115 (Rated for Div. 2)(D,E)3.AtCoder Beginner Contest 294(E,F,G)4.AtCoder Beginner Contest 2465.中国石油大学(北京)第三届“骏码杯”程序设计竞赛(同步赛)(D,E,F)6.Codeforces Global Round 16(D,E,F)7.AtCoder Beginner Contest 209(D,E)8.Monoxer Programming Contest 2022(AtCoder Beginner Contest 238)(E,F)9.AtCoder Beginner Contest 285(B,D,E,F)10.AtCoder Beginner Contest 242(D,E)11.AtCoder Beginner Contest 223(D,E,F)
12.AtCoder Beginner Contest 207(D,E)
13.AtCoder Beginner Contest 247(E,F)14.AtCoder Beginner Contest 226(E,F,G)15.AtCoder Beginner Contest 229(F,G)16.AtCoder Beginner Contest 273(E)17.AtCoder Beginner Contest 286(G)18.AtCoder Beginner Contest 287(C,D,E,F)19.AtCoder Beginner Contest 288(D,E,F)20.AtCoder Beginner Contest 289(E,F)21.AtCoder Beginner Contest 290(D,E)22.AtCoder Beginner Contest 292(E,F,G)23.AtCoder Beginner Contest 298(D,F)24.AtCoder Beginner Contest 299(E,F)25.AtCoder Beginner Contest 300(E,F)26.AtCoder Beginner Contest 302(E,F,G)27.AtCoder Beginner Contest 253(E,F)28.AtCoder Beginner Contest 245(D,E,F)29.AtCoder Beginner Contest 248(D,E,F) 30.AtCoder Beginner Contest 206(Sponsored by Panasonic)(E,F)31.Codeforces Round 875 (Div. 2)(D)32.AtCoder Beginner Contest 178(E,F)33.AtCoder Beginner Contest 307(E,F,G)34.CodeTON Round 5 (Div. 1 + Div. 2, Rated, Prizes!)C35.Educational Codeforces Round 151 (Rated for Div. 2)(C,D)36.AtCoder Beginner Contest 212(E,F)37.牛客小白月赛5138.2022年浙大城市学院新生程序设计竞赛(同步赛)(补题)39.Codeforces Round #770 (Div. 2)B,C40.Codeforces Global Round 24(B,C)41.Codeforces Round #836 (Div. 2)C42.Codeforces Round #840 (Div. 2) C43.Good Bye 2022: 2023 is NEAR C44.Codeforces Round #765 (Div. 2)A,B,C45.Codeforces Round #766 (Div. 2)C,D46.Codeforces Round #841 (Div. 2) and Divide by Zero 202247.Codeforces Round #767 (Div. 2)C ,D 48.Codeforces Round #768 (Div. 2)C ,D49. Codeforces Round #769 (Div. 2) B,C50.Educational Codeforces Round 122 (Rated for Div. 2),C,D51.Educational Codeforces Round 119 (Rated for Div. 2)52.AtCoder Beginner Contest 25853.Codeforces Round #763 (Div. 2)C54.Codeforces Round #843 (Div. 2)(B,C,D,E)55.Educational Codeforces Round 141 (Rated for Div. 2)(B,C,D)56.AtCoder Beginner Contest 275(B,C,D,E,F)57.Codeforces Round #842 (Div. 2)(B,D,E)58.AtCoder Beginner Contest 284(D,E,F)59.The 14th Jilin Provincial Collegiate Programming Contest(补题)60.牛客小白月赛65(C,D,E,F)61.AtCoder Beginner Contest 281(D,E,F)62.Good Bye 2021: 2022 is NEAR D63.Hello 202364.The 15th Jilin Provincial Collegiate Programming Contest(补题)65.Codeforces Round #781 (Div. 2)C 66.Hello 2022(B,D)67.AtCoder Beginner Contest 272(D,E)68.Codeforces Round 751 (Div. 2)(D)69.Codeforces Round 856 (Div. 2)(C,D)70.Codeforces Round 752 (Div. 2)(C,D,E)71.Codeforces Round 855 (Div. 3)(E,F)72.AtCoder Regular Contest 131(A,B,C)73.Educational Codeforces Round 144 (Rated for Div. 2)(A,B,C,D)74.Codeforces Round 853 (Div. 2)(C,D)75.牛客练习赛109(C,D)76.AtCoder Beginner Contest 291(Sponsored by TOYOTA SYSTEMS)(D,E,F)77.Educational Codeforces Round 143 (Rated for Div. 2)(A,C,D)78.Codeforces Round #852 (Div. 2)(C,D)79.Educational Codeforces Round 118 (Rated for Div. 2)(D,E)80.AtCoder Beginner Contest 236(D,E,F)81.Codeforces Round #850 (Div. 2, based on VK Cup 2022 - Final Round)(B,D)82.Codeforces Round #848 (Div. 2)(B,C,D)83.TypeDB Forces 2023 (Div. 1 + Div. 2, Rated, Prizes!) (B,C,D) 84.Codeforces Round #846 (Div. 2)(B,E) 85.Educational Codeforces Round 142 (Rated for Div. 2)(C,D)86.2023牛客寒假算法基础集训营687.Codeforces Round #845 (Div. 2) and ByteRace 2023(A,B,C)88.2023牛客寒假算法基础集训营5 89.2023牛客寒假算法基础集训营3 90.2023牛客寒假算法基础集训营291.2023牛客寒假算法基础集训营192.Educational Codeforces Round 120 (Rated for Div. 2) C,D93.AtCoder Beginner Contest 254(C,D,E,F) AtCoder Beginner Contest 207(D,E)
D(计算几何)
这个题是两个点的集合,每个集合有
问是否可以让这两个集合重合(两个集合之间的点一一重叠)
对于这么两个集合,我们可以首项让这些点的重心都处于原点上
对于求重心
然后以
所以我们需要知道这两个点的角度
所以我们要保证
然后对于要旋转的角度,就是
我们要怎么求一个点在旋转
坐标为
然后对于其他的点,只要
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include<cmath>
#include <bitset>
#include <unordered_map>
using namespace std;
const int maxn=200+10;
const int mod= 998244353;
const double eps=1e-8;
#define int long long
#define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
int n;
struct node
{
double x,y;
}a[maxn],b[maxn];
int sgn(double x)
{
if(fabs(x)<eps) return 0;
if(x<0) return -1;
return 1;
}
node rotate(node now,double angle)
{
node res;
double cosa=cos(angle),sina=sin(angle);
res.x=now.x*cosa-now.y*sina;
res.y=now.x*sina+now.y*cosa;
return res;
}
signed main ()
{
cin>>n;
double acorex=0,acorey=0;
double bcorex=0,bcorey=0;
for (int i=1;i<=n;i++)
{
cin>>a[i].x>>a[i].y;
acorex+=a[i].x;
acorey+=a[i].y;
}
acorex/=n;
acorey/=n;
for (int i=1;i<=n;i++)
{
cin>>b[i].x>>b[i].y;
bcorex+=b[i].x;
bcorey+=b[i].y;
}
bcorex/=n;
bcorey/=n;
for (int i=1;i<=n;i++)
{
a[i].x-=acorex;
a[i].y-=acorey;
b[i].x-=bcorex;
b[i].y-=bcorey;
}
for (int i=1;i<=n;i++)
{
if(sgn(a[i].x)&&sgn(a[i].y))
{
swap(a[i],a[1]);
break;
}
}
for (int i=1;i<=n;i++)
{
double angle=atan2(a[1].y,a[1].x)-atan2(b[i].y,b[i].x);
bool yes=true;
for (int j=1;j<=n;j++)
{
bool find=false;
node tmp=rotate(b[j],angle);
for (int k=1;k<=n;k++)
{
if(sgn(a[k].x-tmp.x)==0&&sgn(a[k].y-tmp.y)==0)
{
find=true;
break;
}
}
if(!find)
{
yes=false;
break;
}
}
if(yes)
{
cout<<"Yes\n";
system ("pause");
return 0;
}
}
cout<<"No\n";
system ("pause");
return 0;
}
E(dp,同余)
这个题的大意是有
我们可以预先求出前缀和
对于前一段已经存在了
只要
对于
所以我们把同余的组合都放在一起
故可得出状态转移方程为
dp[i][j];//分配了i个数,分成j份
s[i][j];//分成j份,%j=i的数量
s[0][1]=1;//初状态,一个,余1=0,,只有这一个状态
for (int i=1;i<=n;i++)
{
for (int j=1;j<=i;j++)
{
dp[i][j]=s[sum[i]%j][j];//把sum[x]%cnt看成一类,相同的余数(同余)
}
for (int j=1;j<=i+1;j++)
{
s[sum[i]%j][j]=s[sum[i]%j]+dp[i][j-1];//我们还需要更新同余的前缀
}
}
知道状态转移方程就很好办了(我感觉这个我很难想到)
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include<cmath>
#include <bitset>
#include <unordered_map>
using namespace std;
const int maxn=3000+10;
const double eps=1e-8;
const int mod=1e9+7;
#define int long long
#define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
int n;
int sum[maxn];
int s[maxn][maxn],dp[maxn][maxn];
signed main ()
{
cin>>n;
for (int i=1;i<=n;i++)
{
int x;
cin>>x;
sum[i]=sum[i-1]+x;
}
s[0][1]=1;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=i;j++)
{
dp[i][j]=s[sum[i]%j][j]%mod;
}
for (int j=1;j<=i+1;j++)
{
s[sum[i]%j][j]=(s[sum[i]%j][j]+dp[i][j-1])%mod;
}
}
int ans=0;
for (int i=1;i<=n;i++)
{
ans=(ans+dp[n][i])%mod;
}
cout<<ans<<"\n";
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)