自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Dosth_Magic

你不能停止努力。

  • 博客(48)
  • 资源 (5)
  • 收藏
  • 关注

原创 ewq

#includeusing namespace std;const int maxn = 100005;int n;stack s;LL arr[maxn];int left[maxn],right[maxn];LL sum[maxn];void solve1(){    while(!s.empty()) s.pop();    for(int i=1;i

2015-09-27 14:32:31 520

原创 11536 - Smallest Sub-Array

题目大意:给一个序列X1 = 1X2 = 2X3 = 3Xi = (Xi-1 + Xi-2 + Xi-3) % M + 1         for i = 4 to N求一段最短的连续子序列,使得这个子序列包含正整数【1,k】思路:扫描一遍即可,用一个队列记录下【1,k】区间内的数的位置,再用一个变量count

2015-09-27 14:14:43 380

原创 UVA - 1615 Highway 区间覆盖

#includeusing namespace std;double L,D;int n;const int maxn = 110000;struct villages{ double l,r;}vill[maxn];bool cmp(const villages a,const villages b){ if(a.r == b.r) return a.l < b.

2015-09-27 13:59:58 573

原创 UVa1612 Guess

做过的一道题精度控制很重要#includeusing namespace std;#define maxn 20000struct player{ int score[8];}P[maxn];int n,ID[maxn];int main(){ int cas=1; while(scanf("%d",&n)==1 && n){ do

2015-09-26 16:21:51 668

原创 1

脑子已经不能动了

2015-09-26 02:19:16 272

原创 UVa11491 - Erasing and Winning

找最大的数嘛位数优先然后首位优先#includeusing namespace std;vectors;int main(){ int n,d; while(~scanf("%d%d",&n,&d)&&n){ int len=n-d; s.clear(),getchar(); for(int i=0;i<n;i++

2015-09-26 02:09:36 855

原创 [思路贪心]UVa12545 - Bits Equalizer

先把0变1然后把变的这一组的_0_1与对应_1_?变#includeusing namespace std;const int maxn = 210;char s[maxn],s0[maxn];int solve(int n){ int sum,_0_1,_1_0,_1_q,_0_q,cnt=0; sum=_0_1=_1_0=_1_q=_0_q=cnt=0;

2015-09-26 01:54:59 439

原创 UVa1149 - Bin Packing

#includeusing namespace std;int a[101000];int main(){ int t,n,l; scanf("%d",&t); while(t--){ scanf("%d %d",&n,&l); for(int i=0;i<n;i++) scanf("%d",&a[i]);

2015-09-26 01:14:47 589

原创 [贪心算法]UVa1610 - Party Games

今晚刷的都是贪心,不难,加油#includeusing namespace std;const int maxn = 1024;int main(){ int n; while(cin>>n&&n){ int k=n/2; string s0,s1,s2,temp; vector words; while(

2015-09-26 01:13:13 580

原创 9.24

是不是到时间该退出这个战场了没办法,就是没人家努力,可能也没人家聪明有那么一点委屈,又有个蛋用呢??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

2015-09-24 22:13:13 287

原创 [贪心]UVa11093 - Just Finish it up

#includeusing namespace std;typedef long long LL;const int MAXD=100000+10;int main(){ int T,Case=1; int add[MAXD]; int next[MAXD]; int cost[MAXD]; scanf("%d",&T); while(T-

2015-09-24 09:54:43 582

原创 [是用数据结构]UVa1471 - Defense Lines

#includeusing namespace std;#define inf 0x3f3f3f3f#define maxn 200000int t,n,a[maxn],f[maxn],g[maxn],d[maxn],ans;int main(){ scanf("%d",&t); while(t--){ scanf("%d",&n); f

2015-09-24 09:21:45 606

原创 [极角排序 扫描法]UVa1606 - Amphiphilic Carbon Molecules

#includeusing namespace std;struct Node{public : int x,y,z; double rad; bool operator < (const Node& rhs) const { return rad < rhs.rad; }}c[1000],d[1000];bool Turn(Node&a,

2015-09-24 03:05:32 614

原创 [等价转换]UVa11054 - Wine trading in Gergovia

第二个村庄的需求为a1+a2#includeusing namespace std;int main(){ int n; while(cin>>n&&n) { long long ans=0,a,last=0; for(int i=0; i<n; i++) { cin>>a;

2015-09-24 03:02:31 356

原创 [问题分解]UVa11054 - Wine trading in Gergovia

#includeusing namespace std;struct pp { int x1,x2,y1,y2,x,y,num;}B[5050];bool cmp1(pp a,pp b) { if(a.x2==b.x2) return a.x1<b.x1; else return a.x2<b.x2; }bool cmp2(pp a,pp b) { if(a.y2==b.y2)

2015-09-24 02:58:35 433

原创 [Hash思想]UVa1152 - 4 Values whose Sum is 0

#includeusing namespace std;struct HashMAP{ static const int mask = 0x7fffff; int p[8388608],q[8388608]; void Clear() { for(int i=0;i<=mask; ++ i) q[i]=0; } int& oper

2015-09-24 02:54:28 461

原创 [高效算法 deque运用]UVa120 - Stacks of Flapjacks

Analysis分析算法很简单,给你一组煎饼,用笔在纸上一画就知道该怎么办了。还是动态规划的思想,从底至上,保持已经遍例过的煎饼都是最大且有序的。比如输入的数据为:2 4 1 3 5按题目要求,4在顶5在底。5已经是最大的了,则移动到上一个煎饼3。3之上(含)最大的是4,先将4翻转到最顶,形成:4 2 1 3 5然后将4到3的子叠翻转,形成:3 1 2 4 5移动到

2015-09-24 02:40:36 466

原创 [DP]10271 - Chopsticks

dp[i, j]表示前i个筷子选择j对(x, y, z)差值最小。对于第i个筷子,就要考虑清楚了,第i个筷子参与第j对 与 第i个筷子不参与第j对。dp[i][j] = min(dp[i-1][j], dp[i-2][j-1] + w);初始化状态要搞清楚,dp[i, 0] = 0,因为要满足选择k+8组,所以其他的都要赋值INT_MAX;#includeusin

2015-09-24 02:19:14 360

原创 [DP记忆化 字符串] UVa1630 Folding

DP[i][j]。i,j分别表示起始位置,终止位置,数组存该段压缩后的长度。一个串的最短压缩可以有两种情况:1.其本身是重复的,压缩其本身达到最短。2.将其分为两段,两段压缩后连接达到最短。#includeusing namespace std;const int INF= 0x3f3f3f3f;string str;int DP[110][110];string fold[110]

2015-09-24 01:52:28 1761 1

原创 [DP枚举]UVa 1629 - Cake slicing

左右切 上下切枚举处每一种切法 在求最小的用到了记忆化DP#includeusing namespace std;const int INF = 0x3f3f3f3f;int n,m,dp[25][25][25][25];bool has[25][25];int sum(int u,int d,int l,int r){ int ret=0; for(int

2015-09-24 01:29:56 607

原创 [逆向DP]UVa10118 - Free Candies

篮子里的状态就是取出的糖果堆得状态所以用4维数组表示糖果堆得状态就行了每次两种选择:选一个糖果和篮子中的消除,或者选一个糖果放到篮子中。判断是否相同还用到了位运算符把每个颜色换成二进制数代表 就是一个某位上的二进制1然后判颜色的时候就好判了如果&为1,就说明篮子里已经有了删掉的时候直接减就可以#includeusing namespace st

2015-09-24 01:11:42 1470

原创 [记忆化搜索DP]UVa10285 - Longest Run on a Snowboard

#includeusing namespace std;int n,R,C,Max,a[105][105],f[105][105];char name[100];int dp(int i,int j){ if(f[i][j]!=0) return f[i][j]; if(i=1&&j=1) { int k,p,q; if(a[i][j

2015-09-24 00:53:34 398

原创 [最小割最大流]UVa1515 - Pool construction

建图:1、设定源点S,和汇点T.       2、把周围的洞全部变为草,然后对于周围的每个草建立S到t容量为无穷大的边       3、对于其他的草,建立S到该点容量为d的边,对于洞建立该点到汇点容量为f的边       4、对于图中的每个点与它周围建立容量为b的双向边。#includeusing namespace std;const int INF

2015-09-24 00:11:03 383

原创 [hash 表达式树]UVa12219 - Common Subexpression Elimination

将每一个结点用一个三元组来表示,然后映射到map中以去重 。 其中三元组中有一个string , 我们可以用hash来处理这个string 。因为string最大长度为4, 所以我们可以这样处理 : int hash = 0;    hash = hash * 27 + s[i] - ‘0‘ + 1; 将hash每次乘以27 是因为字符串只有小写字母,这样做可以完美的去重 ,保

2015-09-23 23:43:26 656

原创 [二进制位运算状态 隐式图搜索]UVa658 - It's not a Bug, it's a Feature!

用二进制表示状态运算起来更快一些,这样一行就可以用一个数字去表示其状态了。按这个思路继续想下去就是如何建图了,其实无论邻接表还是邻接矩阵貌似建完整图的时间复杂度都比较大,而且好多状态未必用的到,因而不如干脆不建完整图,每次都扫描一遍转换规则,如果可以生成另一个状态就将另一个状态直接入队即可。①判定某些位置是否为1,如判定2、4位置为1,则转化为判断x|0101是否等于x。

2015-09-23 23:22:39 540

原创 [最小生成树+二进制枚举]UVa1151 - Buy or Build

二进制枚举子集不太懂用的还是例题的思路#includeusing namespace std;const int maxn = 1005;struct point { int x,y;}pp[maxn];struct edge{ int s,e,dist;}l[maxn*maxn];int q,n,m;int p[maxn];vector g[10];i

2015-09-23 23:04:13 796

原创 [枚举最小瓶颈生成树]UVa-1395 - Slim Span(kruskal)

就是紫书的思路,像暴力#includeusing namespace std;const int MAXN = 105;const int INF = 0x3f3f3f3f;struct Edge{ int u,v,cost; bool operator < (const Edge& a)const { return cost > a.cost;

2015-09-23 22:55:41 402

原创 [二分网络流]uva12264

思路:把每个点拆成两个点,一个入度,一个出度,入度向自己的和每个相邻的点的出度连一条边,容量是ai,每个点出度连一条边到汇点,容量为1,那些与敌人相邻的点再多连一条边到汇点,容量是二分的值,我们只需要二分这个值,跑一下网络流,如果满流,表示可以,否则不行。#includeusing namespace std;const int inf = 0x7f7f7f7f;const int ma

2015-09-22 14:59:48 706

原创 [二分图最大匹配=最小覆盖点]uva12549 Sentry Robots

#includeusing namespace std;const int maxn = 2500 + 10;const int N=100 +10;int X,Y;int g[maxn][maxn], linker[maxn];bool vis[maxn];int mapp[N][N],n,m;pair Map[N][N];bool dfs(int u){ for(in

2015-09-21 22:03:39 631

原创 Clarke and minecraft

#include#include#include#includeusing namespace std;int a[600];int main(){ int t; scanf("%d",&t); while(t--){ int n; scanf("%d",&n); memset(a,0,sizeof(a));

2015-09-19 20:28:08 439

原创 [最大流法二分匹配]uva753

很巧妙的用数组存储c和f方便#includeusing namespace std;const int MAXN = 310;const int INF = 0x3c3c3c3c;string str;map rs,dv;int mr[MAXN];//从源点到i的最小残量int p[MAXN];//更新时i的上流节点int c[MAXN][MAXN],f[MAXN][MAXN]

2015-09-15 23:55:20 434

原创 [超源点:还是最短路的变形]hdu2066

这个答案中队列用的for循环的形式还是挺好玩的#includeusing namespace std;const int INF = 0x7fffffff;int T,S,D,L;const int MAXN = 1005;int graph[MAXN][MAXN];int s[MAXN];int d[MAXN];int Dijkstra(int beg,int end){

2015-09-15 21:27:34 436

原创 [dijkstra]

#includeusing namespace std;const int INF = 0x7f7f7f7f;const int maxn = 10000;struct Edge{ int from,to,dist; Edge(int u,int v,int d):from(u),to(v),dist(d) {}};struct HeapNode{ int d

2015-09-14 22:12:08 383

原创 [floyd]UVa821 - Page Hopping

就是一道简单的floyd的题1A还是不借助题解独立A题来的酸爽!#includeusing namespace std;const int INF = 0x3f3f3f3f;int M;int dp[110][110];bool vis[110];void floyd(){ for(int k=1;k<=M;k++) for(int i=1;

2015-09-10 22:16:42 613

原创 [最大流]UVa820 - Internet Bandwidth

传说中牛逼的网络流,刷了两道例题就刷不动了,还是要好好理解核心算法。增广路算法的核心内容:参量网格中任意一条从s到t的有向道路都对应一条原图中的增广路。求出能增的最大的值d。而且经证明是成立的。所以就有一条类似结论的东西:当且仅当参量网格中不存在s-t增广路时,此时的流是从s到t的最大流。DFS很慢,于是就用到看BFS,此便是Edmonds-Karp算法,很多细节还是要好好理解

2015-09-10 21:25:20 711

原创 [字符串处理]hdu5427

/*Date : 2015-09-06 15:23Author : DongaoMotto :图个乐呵!*/#includeusing namespace std;char str[1000];struct node{ char name[3000]; int num; bool operator < (const node & rhs) cons

2015-09-06 15:49:22 588

原创 [最小费用最大流]UVa1658

这种问题难点仅在于建模理解透彻原模型!#includeusing namespace std;const int maxn = 10000 + 100;const int INF = 0x7f7f7f7f;typedef long long LL;struct Edge{ int from,to,cap,flow,cost; Edge(int u,int v

2015-09-05 15:23:15 545

原创 [最大流]UVa11082

思想完全是紫书上的思想模板并不能很好的理解还需要花时间好好理解#includeusing namespace std;const int maxn = 50 + 5;const int INF = 0x7f7f7f7f;struct Edge{ int from,to,cap,flow; Edge(int u=0,int v=0 ,int c=0,int f=0

2015-09-05 14:06:26 410

原创 [隐式图搜索]UVa658

好题啊,好题就做了一个下午!首先说此题是个状态转移的隐式图然后判断位数是否符合的时候可以用到位运算符。|运算只要有一个为1即为1&两个都为1则为1 ①判定某些位置是否为1,如判定2、4位置为1,则转化为判断x|0101是否等于x。    ②判定某些位置是否为0,如判定2、4位置为0,则转化为判断x&1010是否等于x。    ③将某些位置转化为1,如2、

2015-09-04 20:41:53 525

原创 [floyd]UVa10048

紫书上的思路应该是错的把min和max搞反了外面的min意思是把记录两条路径最小的最大噪音里面的max记录这一条路径上组大噪音值没加\nWrong了好多次#includeusing namespace std;#define INF 0x7f7f7f7fint g[105][105];int n;void floyd(){ for(int k=1;k<=n;

2015-09-04 14:00:49 474

chrome修复工具

chrome一直有问题,有时候能用,然后就上不了csdn,google,这个工具很好用

2018-11-06

p5js代码库

交互式可视化工具,学习前端可视化入门代码库,非常简单有趣

2018-10-18

初学论文制作PPT

初学论文,面对全是英语的文章,还是很难理解的,要多看,更要掌握看文章的方法。 掌握该问的核心思想,学习研究经验。把该论文的ppt做出来,意味着掌握的差不多了

2017-09-21

Qt+OpenGL程序

Qt+OpenGL程序

2017-08-23

C++Qt教程源码

学习youtobe上经典C++Qt教程的代码,有想要学习的可以下下来看看

2017-08-23

空空如也

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

TA关注的人

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