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 245(D,E,F)
D (二项式除法)
D
这个题大意就是给你两个二项式和,问.其中
这里的二项式表示方法是这样的,代表次数为的系数
由以上得知,
所以这就是一个经典的二项式除法
推导过程
虽然我不是很明白,具体代码如下
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include<cmath>
#include <unordered_map>
#include <array>
#include <cstring>
using namespace std;
#define int long long
#define LL long long
#define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define inf 1e18
#define INF 1e18
#define mem(a,b) memset((a),(b),sizeof(a))
const double eps=1e-9;
const int maxn=2e5+10;
int n,m;
int a[maxn],b[maxn],c[maxn];
signed main()
{
cin>>n>>m;
for (int i=0;i<=n;i++)
{
cin>>a[i];
}
for (int i=0;i<=n+m;i++)
{
cin>>c[i];
}
for (int i=m;i>=0;i--)
{
if(c[i+n]==0) b[i]=0;
else b[i]=c[i+n]/a[n];
for (int j=0;j<=n;j++)
{
c[i+j]-=a[j]*b[i];
}
}
for (int i=0;i<=m;i++)
{
cout<<b[i]<<" ";
}
system ("pause");
return 0;
}
E (贪心,二分)
E
这个题的大意是给你块巧克力,个盒子,我们要确定这块巧克力能否安置妥当,也就是放进盒子里,一个盒子只能放一块巧克力,而且这个盒子的长宽都必须大于巧克力的长宽。
我一开始也是想着贪心,把盒子和巧克力都按照从小到大的顺序来,每次选择最前面的那一个盒子,但是我没想到到一点是,我是按照从小到大的,然后考虑,我没想到的是假如我的是满足条件了,但是可能会导致后面有更大的需要,而我在这里使用了,只因为我是优先考虑,然后再考虑的
看了题解,下面是我的理解
我们把原来要考虑的有两个,减少到只考虑一个,那就是我们首先按照大的在前面,然后把还可以使用的放进一个里面,然后对于后面的来说,他们的都是小于这一个的,那么我们就可以不用再考虑了,然后再考虑,然后我们再贪心的选择大于等于最小的那一个,可以用(这也多亏了会排序,不然还要自己去排序,很麻烦)
然后这里我们是把巧克力和盒子都放进一个数组里面了,优先选择大的,一样的话,我们先选择盒子,这样后面如果出现巧克力或许可以用得上(这也是我之前没想到过的)
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include<cmath>
#include <unordered_map>
#include <array>
#include <cstring>
using namespace std;
#define int long long
#define LL long long
#define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define inf 1e18
#define INF 1e18
#define mem(a,b) memset((a),(b),sizeof(a))
const double eps=1e-9;
const int maxn=2e5+10;
int n,m;
struct node
{
int x,y,type;
};
bool cmp(node i,node j)
{
if(i.x!=j.x)
{
return i.x>j.x;
}
return i.type>j.type;
}
vector<node>a,res;
signed main()
{
cin>>n>>m;
a.resize(n+m);
for (int i=0;i<n;i++)
{
cin>>a[i].x;
}
for (int i=0;i<n;i++)
{
cin>>a[i].y;
a[i].type=0;
}
for (int i=0;i<m;i++)
{
cin>>a[i+n].x;
}
for (int i=0;i<m;i++)
{
cin>>a[i+n].y;
a[i+n].type=1;
}
sort(a.begin(),a.end(),cmp);
bool yes=true;
multiset<int>st;
for (int i=0;i<a.size();i++)
{
if(a[i].type==1)
{
st.insert(a[i].y);
}
else
{
int y=a[i].y;
auto it=st.lower_bound(y);
if(it==st.end())
{
yes=false;
break;
}
else
{
st.erase(it);
}
}
}
if(yes)
{
cout<<"Yes\n";
}
else
{
cout<<"No\n";
}
system ("pause");
return 0;
}
F(图,拓扑排序)
F
其实这个题的大意就是给你个点,条边,问有多少个点可以进入死循环(也就是环)
一看到这个,我就想到了拓扑排序
对,就是拓扑排序
然后,我们要怎样建图呢
我以前以为正图和反图好像差不多(这一道题我最一开始就是建立了一个正图,虽然样例过了,但是还是错的)
所以我们在建图的时候考虑什么情况是满足要求的
对于这一个题,只有某个点按照正常的图来说,它没有下一个点,即出度为时,那么它一定不是死循环,刚好对于拓扑排序来时,满足要求的入队,那么我们可以建立一个反向图,这样入度为的一定是满足条件的
然后就是简单的拓扑排序了
#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <map>
#include <set>
#include <queue>
#include <stack>
#include<cmath>
#include <unordered_map>
#include <array>
#include <cstring>
using namespace std;
#define int long long
#define LL long long
#define ios ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
#define inf 1e18
#define INF 1e18
#define mem(a,b) memset((a),(b),sizeof(a))
const double eps=1e-9;
const int maxn=2e5+10;
int n,m;
vector<int>g[maxn];
int in[maxn];
signed main()
{
cin>>n>>m;
for (int i=1;i<=m;i++)
{
int u,v;
cin>>u>>v;
g[v].push_back(u);
in[u]++;
}
int ans=n;
queue<int>q;
for (int i=1;i<=n;i++)
{
if(in[i]==0)
{
q.push(i);
ans--;
}
}
while (!q.empty())
{
int u=q.front();
q.pop();
for (auto v:g[u])
{
in[v]--;
if(in[v]==0)
{
q.push(v);
ans--;
}
}
}
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)