- 博客(12)
- 收藏
- 关注
原创 usaco专题1.5
usaco专题1.5第一题 数字三角形 Number Triangles题目: 观察下面的数字金字塔。73 88 1 02 7 4 44 5 2 6 5写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。在上面的样例中,从7—>3—>8—>7—>5的路径产生了最大。解题思路: 数字三角形是一道典型的动态规划的题,其实就是从一个点出发找下面两个点,每次都找最大的
2021-02-16 15:06:31 132
原创 usaco专题1.3
usaco专题1.3第一题 混合牛奶 Mixing Milk题目: 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要。帮助 Marry 乳业找到最优的牛奶采购方案。Marry 乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的。此外,就像每头奶牛每天只能挤出固定数量的奶,每位奶农每天能提供的牛奶数量是一定的。每天 Marry 乳业可以从奶农手中采购到小于或者等于奶农最大产量的整数数量的牛奶。给出 Marry 乳业每天对牛奶的需求量,还有每位奶农提供的牛奶单价和
2021-02-16 14:47:56 369
原创 uscao专题1.2
uscao专题1.2第一题 挤牛奶 Milking Cows题目: 三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶。第一个农民在300时刻(从5点开始计时,秒为单位)给他的牛挤奶,一直到1000时刻。第二个农民在700时刻开始,在 1200时刻结束。第三个农民在1500时刻开始2100时刻结束。期间最长的至少有一个农民在挤奶的连续时间为900秒(从300时刻到1200时刻),而最长的无人挤奶的连续时间(从挤奶开始一直到挤奶结束)为300秒(从1200时刻到1500时刻)。你的任务是编一个程序,读入一个
2021-02-16 13:19:17 342
原创 uscao专题1.1
uscao专题1.1题目地址: http://wikioi.cn/training/mission/145第一题 你的飞碟在这儿Your Ride Is Here题目大意: 题目给定 两个字符串,而每个字符代表的是(A=1,Z=26),而字符串的数字代表他字符串里每个字母代表的数字的乘积。求这两个字符串的数字mod 47是否相等,如果相等就输出"GO",否则输出"STAY"。解题思路: 先读入两个字符串,在求这两个字符串的长度,再用两个循环求每个字符串的数字(每个字符代表的数字就是这个字符减去"A"
2021-02-16 10:37:28 245
原创 二分法
二分法第一题 二分查找题目: 给出有 n 个元素的由小到大的序列,请你编程找出某元素第一次出现的位置。(n<=10^6)。分析: 他已经帮我们排好序了,所以直接二分,把left设置为1,right为n,算出mid,判断是否大于mid如果大于则把left右移到mid,否则把right左移到mid。代码:#include<bits/stdc++.h>using namespace std;int n,q;int a[1000005];int main(){ cin>
2021-01-22 21:34:02 1430
原创 DFS 深度优先搜索
DFS 深度优先搜索第一题 全排列问题题目: 输出自然数 1 到n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。思路 : 这里用递归每次寻找第d个位置的数,放进去然后标记递归回溯,这样到n个的时就输出。代码:#include<bits/stdc++.h> using namespace std;int n,i;bool vis[11];int ans[11];void dfs(int d){ if(d==n+1) { for
2021-01-08 22:18:47 140
原创 树
树树是一个数据结构,最简单就是二叉树,它跟线性数据结构不同,树是一个前继,多个后继。第一题 二叉树的遍历题目: 求一棵二叉树的前序遍历,中序遍历和后序遍历。分析: 先介绍树的三种遍历,一:前序遍历,根、左、右,二:中序,左、根、右,三:后序,左、右、根。那根据遍历的顺序,去递归每个。代码:#include<bits/stdc++.h>using namespace std;struct node{ int l,r;} g[200];void qx(int x){ if
2020-12-23 22:46:33 358
原创 栈与队列
STL 栈与队列第一题:Blah数集题目 :对于以a为基的集合Ba定义如下:(1) 是集合a的Ba基,且a是Ba的第一个元素;(2)如果x在集合Ba中,则2x+1和3x+1也都在集合Ba 中;(3)没有其他元素在集合Ba 中了。想知道如果将集合Ba中元素按照升序排列,第n个元素会是多少?**分析:**我们知道一个x可以产生出2x+1和3x+1那么每次的第一个2x+1和第二个2x+1比大小,小的放前面,一样3x+1也要比,所以放到n个数是就可以了。代码:#include <bits
2020-12-22 22:37:53 161
原创 青藤 最值、求和、计数 枚举巩固 1+2
青藤 最值、求和、计数 枚举巩固 1+2第一题 一维前缀和**题目大意:**给你n个数,q次询问区间[l,r]的数的总和。**分析:**要先做好预处理,到算的时候就只要减去之前的和就行了。代码#include <bits/stdc++.h>using namespace std;int a, n, m;int s[100005];int main() { cin >> n >> m; for (int i = 1; i <= n;
2020-12-11 21:33:02 113
原创 青藤 贪心(2)
青藤 枚举(2)第一题 种树题目大意: 给路被分为n个段,每个路段只种一棵树,现在有h组建议,让b到e路段种t棵树,问最少种几棵树?分析: 还是用右端点排序,并且一定要种在路段的后面,因为种在后面很可能被后面的路段所应用,每次还要把这个路段扫描一遍,看前面有没有种上。我一开始还RE了,是因为把代表路段数的i写成了k。代码:#include <bits/stdc++.h>using namespace std;struct jg { int b, e, t;} a[5001
2020-12-03 22:49:33 146 1
原创 贪心(1)
青藤 贪心(1)网站: http://wikioi.cn/training/mission/10第一题 排队接水题目大意: 有n个人,给你每个人的装水时间,让你求最少平均等待时间。分析: 让时间最少的排前面那么等待的时间就越少。代码:#include<bits/stdc++.h>using namespace std;int a[10000];int main(){ long long n,ans=0; double sum; cin>>n; long l
2020-11-26 23:03:36 138
原创 青藤 枚举(2)
青藤 枚举(2)http://wikioi.cn/training/mission/98第一题 买铅笔题目大意:老师要买n支铅笔,有三种包装,要求铅笔买够并且钱要少。分析:只要枚举这三种包装的钱,但是可以多买,不能少买,因为只有三种直接暴力。代码#include<bits/stdc++.h>using namespace std;int main(){ long long n,a[3],b[3],c[3],sum1,sum2,sum3,maxn=-1; double ans
2020-11-20 21:59:03 2667
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人