- 博客(7)
- 收藏
- 关注
原创 洛谷P4057 [Code+#1]晨跑 题解
首先了解一个公式: 进而得到: 具体代码如下: #include <cstdio> long long gcd(long long x,long long y)//gcd标准格式 { if(x%y==0) { return y; } else { gcd(y,x%y); } } int main() { long long x=0,y=0,z=0; scanf("%lld %lld %
2020-08-01 20:18:25
287
原创 洛谷P2660 zzc种田
这道题我们先分两种情况讨论 一:一开始就是正方形边长为a,那就不用分割了直接就周长:4*a 二:一开始是矩形:①按照长a和宽b中较短的一个作为边长划分正方形,刚好划分完,假设a>b 周长:b*4*(a/b); ②按照长a和宽b中较短的一个作为边长划分正方形,无法刚好划分完,就进行循环或者递归; 代码如下: #include<bits/stdc++.h> using namespace std; int main(...
2020-08-01 10:29:23
291
原创 洛谷P1918保龄球
这个题目有两种解法,一直是调用map库来开一个map,第二种方法是创建一个结构体,然后先排序再进行二分查找。 这里先说代码二:先复习一下二分查找: int bsearchWithoutRecursion(node c[],int low,int high,int target) { while(low<=high) { int mid=low+(high-low)/2;/*使用(low+high)/2会有整数溢出的问题 (问
2020-07-28 16:33:47
283
原创 P1827美国总统
主要结构如下: 1.如果序列空了,就没必要继续了 2.取到前序序列的首字母,即根节点 3.找到中序序列中根节点的位置 4.删去前序序列中的根节点 5.从0开始切割k个 6.从k开始切割到最后 7.从0开始切割k个 8.从k+1开始切割到最后 9.因为要输出后序序列,所以是左右根 10.先遍历左子树,再右子树,再根节点 这里利用到一个最重要的知识点——二叉树遍历。 前序遍历:根左右 中序遍历:左根右 后序遍历:左右根 前序遍历是先遍历根节点,再遍历根节点的左右子树。 那么,前序序列的第一个节点,一
2020-07-24 10:46:13
265
1
原创 洛谷P1449 后缀表达式解答
这道题目分为两个部分: 1.输入 while((op=getchar())!='@') { //输入部分 if(op>='0'&&op<='9')item*=10,item+=op-'0'; else if(op=='.')a[++i]=item,item=0; } 2.选择运算部分 if(op=='+')a[i-1]=a[i-1]+a[i],a[i]=0,i--; else if(op=='-')a[i-1]=a[i-1]-a[
2020-07-21 15:25:45
137
原创 洛谷P1028数的计算
首先,我们来看一下这道题的规律 a[1]=1; a[2]=a[1]+1;//即小于等于二分之一自身的数的满足题意的个数+自身 ...... a[n]=a[n/2]+...a[1]+1; 如此以来复杂度为O(n^2)的算法就完成了,如下所示: include<bits/stdc++.h> using namespace std; int n,num,a[1001];//定义题目范围内的数组 int main() { cin>>n;//输入 for(regist
2020-07-14 20:08:37
119
原创 洛谷P1518 [USACO2.4]两只塔姆沃斯牛 The Tamworth Two题解
题目描述 两只牛逃跑到了森林里。Farmer John 开始用他的专家技术追捕这两头牛。你的任务是模拟他们的行为(牛和 John)。 追击在10 \times 1010×10的平面网格内进行。一个格子可以是:一个障碍物,两头牛(它们总在一起),或者 Farmer John。两头牛和 Farmer John 可以在同一个格子内(当他们相遇时),但是他们都不能进入有障碍的格子。 一个格子可以是: .空地; *障碍物; C两头牛; FFarmer John。 这里有一个地图的例子: ...
2020-07-10 08:45:33
870
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人