自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(141)
  • 收藏
  • 关注

原创 高精度模板

#include <bits/stdc++.h>using namespace std;string add(string s1,string s2){ int l1 = s1.size(); int l2 = s2.size(); if(l2>l1) { int n = l2-l1; while(n)...

2018-09-14 13:35:32 206

原创 前序中序求后序,中序后续求前序

求后续#include <bits/stdc++.h>using namespace std;int const maxn=1100;int a[8][8];int vis[8];vector<string> ans;void f(string ins,string post){ if(ins.size()==0) return ; ...

2018-09-14 11:05:27 423

原创 P1273 有线电视网

就是一个普通的树形dp,看错了题目的输入一直wa。// luogu-judger-enable-o2#include <bits/stdc++.h>using namespace std;const int maxn = 3010;vector<int> G[maxn];int dp[maxn][maxn];int vis[maxn][maxn];int...

2018-09-01 12:07:20 225

原创 P1198 [JSOI2008]最大数

#include <bits/stdc++.h>using namespace std;int n,d;int const maxn =200001;int const INF = -2147483647;int thenum = 200000;int addv[maxn],maxv[maxn<<2];void build(int s ,int l...

2018-08-31 10:13:23 297 1

原创 P1197 [JSOI2008]星球大战

不同的结构形成的结果也不同。。#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>#include<vector>#include<stack>#define MAXN 200010using namespace std...

2018-08-30 15:49:00 138

原创 最小生成数模板和并查集模板

#include<bits/stdc++.h>using namespace std;struct Edge{int u,v,w;}edge[200005];int fa[5005],n,m,ans,eu,ev,cnt;inline bool cmp(Edge a,Edge b){ return a.w<b.w;}//快排的依据inline int fi...

2018-08-29 22:24:35 119

原创 头条笔试题目

2018/8/25发下头条的笔试题目,给大家笔试后练习。第一题:求连通分量。bfs dfs 并查集都可以。n=1e5,图的储存估计要用邻接表,而并查集开个数组就可以了。第二题:感觉应该是递推唯一分解,考虑最后一个加减号的位置。第三题:听说kmp可以或者trie树第四题:不递减的序列的改变,记录一个周期每个点对应的大小关系,有上一个周期的节点就...

2018-08-29 10:47:41 258

原创 Poj 1258

#include<iostream>#include <string.h> using namespace std;const int maxn = 1000;int graph[maxn][maxn];int dis[maxn];int vis[maxn];int n;const int INF = 0x3f3f3f3f;int tree(int r) { int ans

2017-06-23 00:11:03 295

原创 Poj 1161

#include <stdio.h>#include <string.h> int const maxn = 1000;const int INF = 0x3f3f3f3f;int n,m,a;int member[maxn];int G[maxn][maxn];struct area { int townnum; int town[maxn]; int vis

2017-06-20 14:20:54 290

原创 英语6级题目

Questions 52 to 56 are based on the following passage.Is 20th-century capitalism failing 21st-century society? Members of the global elite debated that unusual question at the annual World Economic For

2017-06-20 14:20:13 1433

原创 魔板[S]

好的分层思想会使代码简单许多。 用了康拓展开,再次感觉到了数学的力量。 bfs的判定边界条件的时候,一般可以分为在得到新的状态的时候判定是否重复,也可以在拿出来的时候判定。总体而言在得到的时候判定会减少一层判定树的高度,但是要额外注意最开始的初始情况。 在TSOj中由于不能用stl中的数据,即必须自己手写队列,保存状态等,但是可以用stl的时候用简单了不少。#include <stdio.h>

2017-03-01 16:50:54 382

原创 3n+1数链问题

用时间换空间,然而需要的空间太大,卡在第6个样例,我觉得应该可以压缩的。#include <stdio.h>#include <string.h>int const maxn = 7000000; //不知道上限在哪里 int g_a[maxn];int g_i,g_j;int g_ans=0;int dfs(int i) { if (g_a[i]!=-1) return g_a[

2017-02-27 13:33:37 313

原创 能量项链

动态规划的想法很容易想到,但是在细节上特别是整除那里容易出错,如果下标从0开始也许更为方便一些。#include <stdio.h>#include <string.h>int const maxn = 210;int a[maxn],s[maxn][maxn];int n;int f(int k) { if(k>n) { if(k%n==0) return n;

2017-02-24 23:16:41 376

原创 this指针的作用

//this指针问题 2012年7月18日0:37:13#include <iostream>using namespace std; class point { public: int x,y; point(int a,int b) { x= a; y = b; } void input(int x,in

2017-02-04 23:14:48 369

原创 [编程题]餐馆

某餐馆有n张桌子,每张桌子有一个参数:a 可容纳的最大人数; 有m批客人,每批客人有两个参数:b人数,c预计消费金额。 在不允许拼桌的情况下,请实现一个算法选择其中一部分客人,使得总预计消费金额最大 输入描述: 输入包括m+2行。 第一行两个整数n(1 <= n <= 50000),m(1 <= m <= 50000) 第二行为n个参数a,即每个桌子可容纳的最大人数,以空格分隔,范围均在3

2017-01-19 23:07:09 893

原创 数字和为sum的方法数

给定一个有n个正整数的数组A和一个整数sum,求选择数组A中部分数字和为sum的方案数。 当两种选取方案有一个数字的下标不一样,我们就认为是不同的组成方案。 输入描述: 输入为两行:第一行为两个正整数n(1 ≤ n ≤ 1000),sum(1 ≤ sum ≤ 1000)第二行为n个正整数Ai,以空格隔开。输出描述: 输出所求的方案数输入例子: 5 15 5 5 10 2 3输出例子:

2017-01-19 22:23:18 1450

原创 连续最大和

一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3 输入描述: 输入为两行。 第一行一个整数n(1 <= n <= 100000),表示一共有n个元素 第二行为n个数,即每个元素,每个整数都在32位int范围内。以空格分隔。输出描述: 所有连续子数组中和最大的值。输入例子: 3 -1 2 1输出例子: 3 当前面的贡

2017-01-19 13:44:35 318

原创 数列还原

牛牛的作业薄上有一个长度为 n 的排列 A,这个排列包含了从1到n的n个数,但是因为一些原因,其中有一些位置(不超过 10 个)看不清了,但是牛牛记得这个数列顺序对的数量是 k,顺序对是指满足 i < j 且 A[i] < A[j] 的对数,请帮助牛牛计算出,符合这个要求的合法排列的数目。 输入描述: 每个输入包含一个测试用例。每个测试用例的第一行包含两个整数 n 和 k(1 <= n <=

2017-01-19 13:41:11 393

原创 星际穿越

航天飞行器是一项复杂而又精密的仪器,飞行器的损耗主要集中在发射和降落的过程,科学家根据实验数据估计,如果在发射过程中,产生了 x 程度的损耗,那么在降落的过程中就会产生 x2 程度的损耗,如果飞船的总损耗超过了它的耐久度,飞行器就会爆炸坠毁。问一艘耐久度为 h 的飞行器,假设在飞行过程中不产生损耗,那么为了保证其可以安全的到达目的地,只考虑整数解,至多发射过程中可以承受多少程度的损耗? 输入描述

2017-01-19 13:35:05 308

原创 分苹果

n 只奶牛坐在一排,每个奶牛拥有 ai 个苹果,现在你要在它们之间转移苹果,使得最后所有奶牛拥有的苹果数都相同,每一次,你只能从一只奶牛身上拿走恰好两个苹果到另一个奶牛上,问最少需要移动多少次可以平分苹果,如果方案不存在输出 -1。 输入描述: 每个输入包含一个测试用例。每个测试用例的第一行包含一个整数 n(1 <= n <= 100),接下来的一行包含 n 个整数 ai(1 <= ai <=

2017-01-19 13:32:15 362

原创 分田地

牛牛和 15 个朋友来玩打土豪分田地的游戏,牛牛决定让你来分田地,地主的田地可以看成是一个矩形,每个位置有一个价值。分割田地的方法是横竖各切三刀,分成 16 份,作为领导干部,牛牛总是会选择其中总价值最小的一份田地, 作为牛牛最好的朋友,你希望牛牛取得的田地的价值和尽可能大,你知道这个值最大可以是多少吗? 输入描述: 每个输入包含 1 个测试用例。每个测试用例的第一行包含两个整数 n 和 m(

2017-01-19 13:31:02 509

原创 下厨房

牛牛想尝试一些新的料理,每个料理需要一些不同的材料,问完成所有的料理需要准备多少种不同的材料。 输入描述: 每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。输出描述: 输出一行一个数字表示完成所有料理需要多少种不同的材料。输入例子: BUTTE

2017-01-19 13:29:39 217

原创 地牢逃脱

是对最短路径的变形,即是就最短路径当中的最长路径,注意修改即可。bfs,dfs都可以实现,现在附上dfs的实现方式。#include <iostream>#include <cstring>using namespace std;int const maxn = 100;char data[maxn][maxn];int r,c;int vis[maxn][maxn];int dr[m

2017-01-19 13:24:41 224

原创 合唱团

dp 保留两个数组,因为最大值得来源有两个 另外记得用long long,int会溢出#include <iostream>#include <cstring>using namespace std;int const maxn = 100;int data[maxn];long long ap[maxn][maxn];long long an[maxn][maxn];int c

2017-01-19 13:20:16 309

原创 Super Snooker

#include <iostream>using namespace std;int main() { int t; cin>>t; int a,b,c,d; for (int i=1;i<=t;i++) { cin>>a>>b>>c>>d; int s=(c+d)*(d-c+1)/2; int len = d-c+1

2017-01-13 20:53:02 245

原创 Team Rankings

搜索#include <iostream>#include <cstring>using namespace std;char tmp[10];char data[110][10];int vis[10];int ans = 2<<10;int n;char hh[10];int findchar(char* s,char k) { for (int i=0;i<strle

2017-01-13 20:52:28 342

原创 sort-list

说说自己做的过程中的几个错误吧。 1忽略了空链表的情况。 2两个链表进行并归排序的时候,应该拿函数返回的头结点,而不是划分的头结点,因为在递归的过程中,最初的头结点可能因为排序而后移了。 3快慢指针的问题条件的判断。#include <iostream>#include <map>#include <vector>#include<cstdlib>#include <ctime>#i

2017-01-12 17:53:39 198

原创 Sorting Algorithm

堆排序#include <iostream>using namespace std;const int maxn = 100010;int a1[maxn];int n,m;void g(int lo,int len) { int tmp = a1[lo]; int h = lo; int k=lo*2; while(k<=len) { i

2017-01-03 10:57:56 266

原创 字符串匹配

题目中的数组大小有问题#include <iostream>#include <string>using namespace std;const int maxn = 60010;int a1[maxn],a2[maxn]; int len1,len2;int* build(int l2) { int i1=-1,i2=0; int* next = new int[l2];

2017-01-02 19:12:34 254

原创 图的广度优先搜索

pay attention to the cout#include <iostream>#include <vector>#include <cstring>#include <queue>using namespace std;const int maxn = 1010;int nV,nE;int vis[maxn];int map[maxn][maxn];int main()

2017-01-01 13:33:08 249

原创 connect components in undirected graph

深度和宽度搜索都写了,记住分析的过程。#include <iostream>#include <vector>#include <cstring>#include <queue>using namespace std;const int maxn = 1010;int nV,nE;int vis[maxn];int f (int lo,vector<vector<int>> V) {

2017-01-01 13:11:46 285

原创 走迷宫

记忆化搜索的效果呢?我估计效率不会高。#include <iostream>#include <cstring>#include <queue>using namespace std;int const maxn = 20;int vis[maxn][maxn];char data[maxn][maxn];int dr[]={1,-1,0,0};int dc[]={0,0,1,-1}

2016-12-31 21:36:13 268

原创 猴子选大王

#include <iostream>#include <list>#include <vector>using namespace std;const int maxn = 100;int data[maxn];int main() { int t; cin>>t; while(t--) { int n,m; cin>>n>>m;

2016-12-31 20:50:52 296

原创 卡片游戏

#include <iostream>#include <list>#include <vector>using namespace std;const int maxn = 100;int data[maxn];int main() { int t; cin>>t; while(t--) { int n; cin>>n; for(int i=0;i<n

2016-12-31 20:32:55 302

转载 list

http://www.cnblogs.com/fangyukuan/archive/2010/09/21/1832364.html http://www.cnblogs.com/scandy-yuan/archive/2013/01/08/2851324.html

2016-12-30 17:11:14 195

原创 1002. 计算二叉查找树的高度

devcpp代码名字如果太相近就会出现bug#include <iostream>using namespace std;const int maxn = 100;int a[maxn],b[maxn];struct TreeNode { int val; TreeNode* left,*right; TreeNode(int a):val(a),left(NULL)

2016-12-30 15:14:21 543

原创 Intersect

#include <iostream>#include <set>using namespace std;int main() { int n; cin>>n; while(n--) { int n1,n2; cin>>n1>>n2; set<int> S1; for (int i=0;i<n1;i++)

2016-12-29 18:58:42 234

原创 红与黑

#include <iostream>#include <cstring>using namespace std;const int maxn = 25; int dr[]={0,0,1,-1};int dc[]={1,-1,0,0};char data[maxn][maxn]; int vis[maxn][maxn];int dfs(int lr,int lc,int r,int

2016-12-29 14:00:27 342

原创 最长句子

从子树到父节点却是一个选择。#include <set>#include <map>#include <string>#include <iostream>using namespace std;int getLen(string s,map<string,set<string>>& mp,map<string,int>& hasFind){if(hasFind.count(s)==1)

2016-12-29 13:32:51 359

原创 validate-binary-search-tree

while写成if debug了半天。/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }

2016-12-28 10:32:41 254

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除