noip算法题
SundyLee32
半肉半法师
展开
-
1206:放苹果
http://ybt.ssoier.cn:8088/problem_show.php?pid=1206一种有递归关系式的思路#include<bits/stdc++.h>using namespace std;int fun(int remain, int pre, int c){ /* remain: 剩余果子 pre: 前一个盘子放的果子 c: 盘子数量 返回可以放的方案总数 */ if(c==1 and remain>=c and remain&原创 2020-07-15 16:21:56 · 159 阅读 · 0 评论 -
实现简易的http服务器(python3)
import socket# create socket objects = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# set an port to listens.bind(("127.0.0.1", 9991))# this is maximum num of listen queues.listen(5)print(...原创 2019-12-06 22:14:49 · 151 阅读 · 0 评论 -
加工零件
加工零件方法一/* 整体思路: 1.计算出1到其他任意点的奇数最短路径和偶数最短路径 2.如果询问的点为X,长度为L。 L为偶数,1到X的偶数最短路径应该大于等于L; L为奇数,1到X的奇数最短路径应该大于等于L,如果小于肯定输出NO表示不能到达*/#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<...原创 2019-12-06 14:25:39 · 610 阅读 · 0 评论 -
纪念品题解
题目https://www.luogu.org/problem/P5662思路1.题目中有一句话每天卖出纪念品换回的金币可以立即用于购买纪念品,当日购买的纪念品也可以当日卖出换回金币。当然,一直持有纪念品也是可以的。看上去是一个句废话,其实在提示我们,一个物品可以以金币的形式存在我们的口袋里,也可以以物品的形式存在我们的口袋里。那么我们为了方便编程用金币的形式存储物品是比较方便的。...原创 2019-12-06 14:20:53 · 544 阅读 · 0 评论 -
选择排序
简易版选择排序#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)using namespace std;int main(){ /* 简化版的选择排序1 找到第一小的数字,并且放在a[1]位置 */ int a[10]; for (int i = 1; i<=9...原创 2019-11-24 16:39:04 · 74 阅读 · 0 评论 -
填数游戏20分
#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)#define LEN 1000 using namespace std;int n,m; int finlans = 0;int myMap[3][3];vector< pair<int, int> > pVec...原创 2019-11-14 16:24:38 · 121 阅读 · 0 评论 -
填数游戏
#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)#define LEN 1000 using namespace std;int n,m; string myMap[2][2];vector< pair<int, int> > pVec; /* 一条(0,0)出...原创 2019-11-13 13:57:50 · 223 阅读 · 0 评论 -
赛道修建 -10分代码
基于m等于1的情况#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)#define LEN 50001using namespace std;int n,m;int maxAns = 0;vector< pair<int, int> > listMap[LEN];...原创 2019-11-07 15:36:11 · 151 阅读 · 0 评论 -
概率期望dp
被学生问到这个问题,反复的想了很久不得,又去问了很多老师,最后有一种方程的解法让我不尽感叹数学是多么的神奇。问题问题:有一个整数n=10,每次会随机选择n的一个因子k,将n变成k,请问n变成1的期望步数是多少?思路假设dp[i]dp[i]dp[i]表示的是从i出发到1的期望步数那么dp[10]=dp[10]+14+dp[5]+14+dp[2]+14+dp[1]+14dp[10] = \f...原创 2019-10-30 14:17:22 · 180 阅读 · 0 评论 -
十进制和二进制转换
初赛中经常遇到选择题,十进制和二进制之间的互相转换,被学生也问倒了几次。特此记录下。正数十进制转二进制除二取余,逆序排列。负数十进制转二进制1.负数转为正数 -5 -> 52.求其二进制 5 -> 1013.求其反码 101 -> 0104.加1 011所以-5的二进制是 011。如果加上符号位就是1011...原创 2019-10-27 14:00:15 · 159 阅读 · 0 评论 -
《摆渡车》题解和反思
https://www.luogu.org/problem/P5017反思首先得去反思自己到底是什么原因在去年题目刚出来的时候没有做出来。是信念,有很笨的想法,内心自我否定,导致不敢去尝试。是决定。代码一遍写出来大都有各种数据区间没有卡好,这就需要耐心的一点点的调试。题解有一个不争的事实,每一个乘客的等车时间不会超过m。如果一个乘客的等车时间超过了m,那么完全可以在等待的时间发一个车去接它...原创 2019-10-10 18:41:59 · 1227 阅读 · 2 评论 -
《走迷宫》双向BFS版本
#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)#define N 200 using namespace std;struct Node{ int a=0; int b=0; int step=0; int begin; /* 表示从哪个出发的 0:从起点出发; 1:从终点出发的 *...原创 2019-09-15 17:26:11 · 180 阅读 · 0 评论 -
洛谷-序列合并-思路
https://www.luogu.org/problem/P1631如果首先输入的是:2 6 61 4 8那么算法过程如下图:原创 2019-08-15 14:49:38 · 143 阅读 · 0 评论 -
【例9.16】分组背包 代码
http://ybt.ssoier.cn:8088/problem_show.php?pid=1272很简单的题目。不过是在01背包上增加约束而已。思路:对于物品i分两种情况,放或者不放,计算那种情况可以获得的背包总价值最大,就是答案了。总结下自己的错误点:放物品前需要判断:1.该组别是否已经放过 2.放入该物品是否会背包溢出!!!#include<bits/stdc++.h>...原创 2019-06-13 14:41:34 · 529 阅读 · 0 评论 -
noip15年普及组-T4-推销员
P2672 推销员提出一个假设,如果X=1X=1X=1, 走过的结点集合为{i1}\{i_1\}{i1},如果X=2X=2X=2, 走过的结点集合为{i1,i2}\{i_1, i_2\}{i1,i2}就是说:X=2X=2X=2的集合必然包含X=1X=1X=1的集合证明:v[i] : i结点的疲劳值dis[i]: i结点到起点的距离当x=1时 maxNode为最大的结点, 即是...原创 2019-06-06 14:48:48 · 421 阅读 · 0 评论 -
图的练习题医院设置
http://ybt.ssoier.cn:8088/problem_show.php?pid=1338树的一道题目。#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)#define LEN 100#define INF 99999using namespace std;int n; in...原创 2019-05-31 11:20:09 · 245 阅读 · 0 评论 -
一本通【例5.3】自然数的拆分
http://ybt.ssoier.cn:8088/problem_show.php?pid=1318#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)using namespace std;int N = 7;int ans = 0;vector<int> arr;/* ...原创 2019-06-12 11:14:32 · 398 阅读 · 0 评论 -
最长上升子序列(LIS)
搜索法对于每一个数字我们都有两个状态,取或者不取。最后看下留下哪些数字可以获得最大长度。时间复杂度 O(n2)O(n^{2})O(n2)递推dp[i] :表示以i为开头能获得的最大长度是多少。dp[i] = dp[i+1 ~ n]中最大的+1,并且那个数比a[i]大时间复杂度O(n2)O(n^{2})O(n2)神奇解法dp[i]表示序列长度为i的时候最后一位是什么然后不停的更新...原创 2019-06-26 14:32:54 · 91 阅读 · 0 评论 -
《走迷宫》BFS模板题
http://ybt.ssoier.cn:8088/problem_show.php?pid=1252《走迷宫》BFS模板#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)#define N 200 using namespace std;struct Node{ int a=0; ...原创 2019-07-14 13:47:41 · 217 阅读 · 0 评论 -
BFS模板(非STL版本)
#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)using namespace std;struct Node{ int a=0; int b=0; int step=0;};int myMap[5][4]={ 0,0,3,2, ...原创 2019-07-07 11:40:30 · 177 阅读 · 0 评论 -
跳房子
第一步,对固定距离d进行二分。当固定距离为mid的时候,可以得到k分吗?可以。不可以int l=0;// int r=a[n][0]-d; int r=1005; int mid=0; while(l<=r){ mid=(l+r)/2; if(check(mid)){ ans=mid; ...原创 2019-07-25 14:03:22 · 154 阅读 · 0 评论 -
没有上司的舞会
https://www.luogu.org/problem/P1352如果根去了舞会,那么子节点就不去舞会,这一句话其实并不会影响到我们的dfs函数中的,回溯条件,约束条件。递归关系如下:dfs(current,go=true)dfs(current, go = true)dfs(current,go=true) : 当前current这个点去能获得的最大价值dfs(current,g...原创 2019-07-25 16:18:29 · 93 阅读 · 0 评论 -
stl deque 单调队列
数字个数为8 队列的宽度限制为3。输入:8 31 3 -1 -3 5 3 6 7单调递增队列:#include<bits/stdc++.h>#define UP(i,x,y) for(int i=x; i<=y; i++)using namespace std;struct node{ int value; int index;};deque<...原创 2019-08-08 14:17:25 · 290 阅读 · 0 评论 -
扩展欧几里得算法的学习
扩展欧几里得算法基本公式ax + by = gcd(a , b) 这个公式我们不用证明,就假设它是对的。要注意几点,对于这个公式我们这么去理解,存在一对(x,y)使得ax + by = gcd(a , b)成立;那么肯定也存在一对(x1, y1)使得b * x1 + a % b * y1 = gcd(b, a%b)成立 其中a % b我们看成一个整体。关键的时候来了, 一个简单的事实是gcd(a,原创 2017-09-14 11:38:12 · 295 阅读 · 0 评论