分类: 周作业。

11 篇文章

三题(week 12)
T1 宝物筛选(P1776) 未优化,当成多重背包做。 #include <iostream> #include <stdio.h> using namespace std; int v[1005],w[1005],s[1005],dp[1005]; int main(){ freopen("P1776_…
五题(week12)
T1 汤姆斯的天堂梦(P1796) #include <iostream> using namespace std; const int inf=1e9+5; int n,t,ans; int c[105][105][105],dp[105][105],planet[105]; //c(i,j,…
图论(week 10)
T1 Einstein学画画 是一题(一笔画)欧拉路的模板。欧拉路 是指若从起点到终点的路径恰经过图中每条边一次,则该路径成为欧拉路。存在欧拉路的条件是:图是联通的,且有0个或2个奇点(出入度为奇数的点)。欧拉路一定是从一个奇点开始,到另一个奇点结束,所以有两个奇点的时候能一笔画完。 若每多出两个奇点,画的次数就会+1,所以答案就是 奇点的个数 /…
图论(week 9)
T1 查找文献 (dfs bfs模板题) 下附代码: #include <bits/stdc++.h> using namespace std; const int maxx=1e6+5; int n,m; int vis[maxx]; vector<int> book[maxx]; queue<int…
动态规划(Week7)
T1 采药 太典了。 大家闭着眼睛都能敲出来。(?) #include <iostream> using namespace std; int T,M; int t[1005],v[1005],dp[1005]; int main(){ cin>>T>>M; for(int i=1;i<=M;i++){ cin>…
动态规划(Week8)
T1 疯狂的采药 题目: 是经典的01背包问题,在博客另一处有介绍,推出 状态转移方程即可。 代码如下。 #include <iostream> using namespace std; long long int T,n; long long int t[10005],w[10005]; long long int d…
贪心 (Week 6)
T1 三国游戏 每次选择都不可能选中最大默契值的武将,所以从1号到最后一号武将找与他默契值第二大的武将,并一直更新答案。 代码如下。 #include <iostream> #include <algorithm> using namespace std; int g[505][505]; int main(){ int…
搜索算法与图论(Week 4 , 5)
搜索和动态规划是算法界的两座大山。 搜索本质上是一种遍历,是对每一种情况操作一遍。 T1 迷宫(dfs) 是好题,一道用dfs的好题。 #include <iostream> #include <cstring> using namespace std; int n,m,t; int movex[5]={0,1,0,-1,0};…
线性数据结构 (Week 3)
只学了链表,栈,和 map。(理直气壮) T1 队列安排 要用手写一种很新的东西存数据。每个同学自带左手和右手,于是用链表完成对队列的操作。 代码如下。 #include <iostream> using namespace std; const int N=1e6+5; struct hand{ int l,r; };//同学的左手和…
二分搜索与二分答案(week2)
顺序查找时间复杂度为O(n),在数据量为1e8左右时计算机能在1s内处理完毕,但数据量为1e9及以上的时候,仍采用顺序查找对于计算机就比较吃力了,效率相当低。 二分查找有个很重要的特点,就是不会查找数列的全部元素,而查找的数据量其实正好符合元素的对数,正常情况下每次查找的元素都在一半一半地减少。在最坏的情况和一般情况下都比顺序查找要快。 使用二分查…