分类: 算法

6 篇文章

算法基础训练 50 题(四)搜索
#JC0401. 自然数的拆分问题 题目描述 利用回溯算法,每次都从1遍历到上限,并记录当前搜索的值以及总和。每当总和等于n时,输出所有记录的值。 using namespace std; int t,n,m,a[100],ans; string s; int run(int l,int s,int sum) { if (sum==n) {…
Codeforces Round 920 Div. 3 题解
题目链接:Codeforces Round 920 (Div. 3) A. Square 难度800 输入矩形的四个坐标,计算四边形的面积。 获取到输入坐标中x和y轴的最小值最大值,相乘计算面积即可。 int t; int a[4][2],minx,miny,maxx,maxy; int main() { // ios::syn…
算法基础训练 50 题(三)二分
#JC0301. Angry Cows 题目描述 利用二分,来查找距离值,通过判断该距离值是否能安排的下所有的牛来调整l和r。 int n,m,a[100005]; int main() { // ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); CI n>>m; F(i,1,n) CI a&#…
算法基础训练 50 题(五)前缀和与差分
#JC0501. Subsequences Summing to Sevens S 题目描述 先对输入数据求前缀和,同时将前缀和模7。从头开始遍历,对于每一个数,再从末尾往前寻找,找到和模7为0的数,并记录区间长度。直接这样会导致超时。实际上由于记录前缀和时进行了模7,所以前缀和只会是0-6中的数,区间开始位置的数相同时区间的结尾也相同,但是后遍历…
前缀和与差分
模版 //用a表示原数组originalArray,用p表示前缀和prefixSum,用d表示差分difference //一维前缀 a[0]=p[0]=0; p[i]=a[i]+p[i-1]; //生成前缀和 a[i]=p[i]-p[i-1]; //还原原数组 sum=p[r…
算法基础训练 50 题(二) 贪心
#JC0201. 活动安排 题目描述 对数据按照结束时间从小到大排序,相同结束时间的按开始时间从大道小排序。然后使用一个变量记录时间指针,不断选取开始时间大于等于时间指针的会议并把指针移到该会议的结束时间。 #include<bits/stdc++.h> pair<int,int> p[1001]; int n,an…