自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 noj1010 基本的迷宫问题

The Inescapable MazeTime Limit:1000ms   Memory Limit:65536KTotal Submissions:362   Accepted:138DescriptionJack and his friends were trapped in a maze of amusement park.  Please help

2016-04-29 15:32:27 423

原创 noj1009

#include#include#includeusing namespace std;int main(){char a[105];char b[15];char c[200];scanf("%s%s",a,b);int p=0;bool flagnf=false;for(int i=0;a[i]!='\0';i++){if(a[i]!=b[0])

2016-04-29 12:57:13 326

原创 hdu1698

#include #includeusing namespace std;const int maxn=50000+5;int n,q;int height[maxn];struct segtree{ int left,right; int maxx,minn;};segtree tree[maxn*4];void build(int low,int high

2016-04-29 01:34:27 239

原创 poj3264 线段树求最大值,最小值

#include #includeusing namespace std;const int maxn=50000+5;int n,q;int height[maxn];struct segtree{    int left,right;    int maxx,minn;};segtree tree[maxn*4];void build(i

2016-04-28 11:47:38 276

原创 uva136 优先队列,或者常规做法,比较大小存入数组即可。

#includeusing namespace std;typedef long long ll;int coeff[3]={2,3,5};int main(){ //freopen("shuju.txt","r",stdin); priority_queue,greater > q; set s; q.push(1);s.insert(1); for(int i=1;;++i

2016-04-26 00:19:35 271

转载 HDU 1506(动态规划)

分析1:对于每个单位矩阵,我们先求出连续比它高的最左边的下标假设为l,然后求出比它高的最右边的下标假设为r,然后矩阵的面积就是(r-l+1)*1;我们从左到右扫一遍,求出每个点的l保存在l[]数组里,然后从右到左扫一遍,求出每个点的r保存在r[]数组里,最后可以求出最大的矩阵了。分析2:我们要求最大矩形面积,那么我们应该求每个矩形向两边延伸的最大长度,最坏情况为0(n),必然T

2016-04-26 00:10:35 308

原创 poj1258 最小生成树(但是可以很简洁的写哦)

#include#includeusing namespace std;int main(){ int dis[101][101],vis[101],n,i,j,min,farm,p,s; while(cin>>n&&n) { memset(vis,0,sizeof(vis)); for(i=0;i<n;i++) f

2016-04-26 00:07:24 273

原创 hdu 2544 模板题(弗洛伊德)

#include const int N=65535;int dis[110][110];int main(){ int i,j,k,n,m,p,q,s; while(scanf("%d%d",&n,&m)!=EOF,n+m) { for (i=1;i<=n;i++) { for(j=1;j<=n;j++)

2016-04-26 00:05:34 292

原创 poj3259 比尔曼福德树,找负数边

#include #include#define M3000#define inf129using namespace std;int n,m,w;struct{    int x,y,t;}edge[M];int bellman(){    int i,j,d[505];    int flag=1,sum=1;   

2016-04-26 00:04:32 342

原创 hdu1102 最小生成树

#include#includeint cost[105][105];int vis[105];int lowcost[105];int n;const int min=20000;int prim(){    memset(vis,0,sizeof(vis));    int min1=min;    for(int i=0;in;i++)   

2016-04-26 00:00:55 244

原创 uva10608 并查集

#includeint f[10020];int fun(int x){ return f[x]=(f[x]==x)?f[x]:fun(f[x]);}int main(){ int sum[10020]; int i,n,t,m,a,b,p,q,min; scanf("%d",&t); while(t--) { scanf

2016-04-25 23:58:38 312

转载 poj3468 树状数组的区间快速更新和查询

直接用树状数组会超时;所以必须快速更新。/*分析:由于本题更新的时候是区间更新 所以不能直接去一个个更新区间内的点,肯定会超时 对于每次更新C(a,b,d)表示区间[a,b]内的值增加d 用ans[a]表示a~n区间元素增加的值,所以对于C(a,b,d)有:ans[a]+=d,ans[b+1]-=d; 则每次询问的时候Q(a,b),求a~b的和SUM=sum(a,b)+

2016-04-25 23:54:03 352

原创 poj3264 树状数组找最大值问题

#include #include#define MAXN 50100#define MAXT 1000010#define max(a,b) a>b?a:b#define min(a,b) a>b?b:ausing namespace std;int a[MAXN],tl[MAXT],tr[MAXT],tmax[MAXT],tmin[MAXT];void

2016-04-25 23:51:04 269

原创 uva540 优先队列+模拟

#include #include #include #includeusing namespace std;const int maxt=1000+10;int main(){    int t,kase=1;    while(scanf("%d",&t)!=EOF&&t)    {        printf("Scenario #%d\n",ka

2016-04-25 23:49:38 229

原创 poj2488.特坑的一题

首先不能用队列存输出,会超时;第二,最坑的地方,方向数组一定先排列好。因为输出要按字典序排序,所以方向数组从左往右排列好,后边就不用处理这个问题。这是最大坑点,坑了我一个小时,看了别人代码才找出这个bug!!!!!#include #include#includeusing namespace std;const int maxx=26+5;int dir[][2]={{-2,-

2016-04-17 23:11:06 285

原创 zoj 2110

A - Tempter of the BoneCrawling in process...Crawling failedTime Limit:2000MS    Memory Limit:65536KB     64bit IO Format:%lld & %lluSubmitStatus Practice ZOJ 2110 Descriptio

2016-04-17 08:06:47 413

原创 求因子数

总时间限制: 5000ms 内存限制: 32768kB描述整数的因子数为包含它自身的所有因子的个数。例如:12的因子为1,2,3,4,6,12,所以12的因子数为6。给定整数n,计算其因子数。输入输入数据中含有一些整数n(1≤n<2^32)。输出对于每个n,以一行的形式输出整数自身加冒号与空格,再输出其因子数。样例输入11 22 33 24样例输出11: 222:

2016-04-16 21:30:12 587

原创 跳马问题。bfs计数

描述         在中国象棋中,棋子活动的场所,叫做"棋盘",在长方形的平面上,绘有九条平行的竖线和十条平行横线相交组成,共九十个交叉点,棋子就摆在这些交叉点上。中间第五、第六两横线之间未画竖线的空白地带,称为"河界",整个棋盘就以"河界"分为相等的两部分;两方将帅坐镇、画有"米"字方格的地方,叫做"九宫"。中国象棋中,马是威力很大的棋子。马走动的方法是一直一斜,即先横着或直着

2016-04-16 21:27:47 1383

原创 nuc2016第一次月赛B。。对称素数

判断一个数是否为对称且不大于五位数的素数。输入输入数据含有不多于50个的正整数(0输出对于每个n,如果该数是不大于五位数的对称素数,则输出“Yes”,否则输出“No”。每个判断结果单独列一行。样例输入11 101 272样例输出YesYesNo#include#include#include#define M 100000int a[M];void su()

2016-04-16 21:25:05 301

原创 nuc2016第一次月赛A

描述The first lady of our lab is GuoJie, GuoJie likes walking very much.Today GuoJie walks from the original point (0, 0), everytime he(may be she?) can go up or left or right a step.But she can't

2016-04-16 21:21:54 312

原创 hdu1166

树状数组做比线段树简单的多。排兵布阵,题意很好懂,代码就是三个模板。#include #include#includeusing namespace std;int n;int c[50005];int lowbit(int x){ return x&(-x);}void add(int pos,int num){ while(pos<=n) {

2016-04-16 00:36:34 181

原创 uva10050

题目很简单,就是找除了周五周六,被标记的天数。。。代码很清晰,思路很简单#include #include#includeusing namespace std;int a[10020];int main(){ int t,d,n,p,i; scanf("%d",&t); while(t--) { int ans=0; m

2016-04-15 13:46:38 208

原创 uva101

本题一共四个命令:            1.move a onto b,把a和b上面的方块都放回原来位置,然后把a放到b上面;            2.move a over b,把a上面的放回原处,然后把a放在b所在的方块堆的上面;            3.pile a onto b,把b上面的放回原来位置,然后把a和a上面的方块整体放到b上面;            4.

2016-04-15 01:08:16 363

原创 uva133

简单的队列题,一开始以为要用到循环队列,后来发现其实蛮简单,用数组就可以模拟。思路体现在代码中,很清晰#include #include#includeusing namespace std;int main(){ int t,n,m,i,j; int a[25]; while(scanf("%d%d%d",&t,&n,&m)!=EOF) {

2016-04-15 01:03:57 467 1

原创 uva10112

题意就是说给你几个点,找到三个点组成三角形面积最大而且其中没有其他点,公式题目也给出,挺水的一道题其实#include #include#include#includeusing namespace std;double area(int x1,int y1,int x2,int y2,int x3,int y3){ return fabs(0.5*((y3-y1)*(x2-

2016-04-14 00:20:59 273

原创 uva253

以上下为轴,左右为轴,前后为轴每个8种,上下可以翻转。其余四个面顺时针旋转:前-》左左-》后后-》右右-》前3    4   5   6没有想到简单的表示方法只能手打穷举了......#include char s[10200];int sort(char up,char down,char a,char b,char c,char d) { if ((up=

2016-04-12 13:21:30 276

原创 UVA10014

#includeint main(){ int t,n,i; double a,b,c,sum; scanf("%d",&t); while(t--) { scanf("%d%lf%lf",&n,&a,&b); sum=0; for(i=0;i<n;i++) {

2016-04-12 13:16:14 279

原创 UVA10025

就是一个数学题。。通过求和公式,求出前n个和比k大的n的最小值,然后判断前n个数的和与k的值的差是否为偶数,如果为偶数则表示该n为最小的所需个数,因为如果差为偶数,则只需将前n个数的几个数前的符号改为减号,就可以得到k,如果不#include int main(){ int i,j,n,s,t,k,m; scanf("%d",&n); while(n--)

2016-04-12 13:13:21 221

原创 uva 10790

就是个公式,数学题。但是要注意输入格式哦。。。。#includeint main(){ long long a,b,ca=1; while(1) { scanf("%I64d%I64d",&a,&b); if(a+b==0) break; else { lon

2016-04-12 13:06:26 225

原创 UVA846

思路,既然第一步和最后一步都是只能走一步,那么一定步数的过程就是1,2,3,……n,……3,2,1。所以用一个sqrt()函数就能确定一半是多少步。初步就定型了,然后再通过几个比较来确定还得走几步重复的路。看代码。。。#include#includeint main(){ int t,a,b; scanf("%d",&t); while(t--) {

2016-04-12 13:02:32 185

原创 UVA11111

题意:就是说一个娃娃肚子里只能放比它小的娃娃,输入一组数后,看看是否符合条件。思路:这个题得预判剩余空间,所以用了两个栈来,一 个 q  储存输入数值,一个  p  储存剩余空间。如果是负数,就入q,上一个数减去这个数就是剩余空间(此处正负值自己算,这里只说思路),遇到正数,就比较绝对值………………依次出栈,进栈。。。说这么多,看代码直接就清楚了!!!#include #include#i

2016-04-12 12:56:51 329

原创 poj3984. 5X5的迷宫

#include #include #include #include #include #includeusing namespace std;struct point{ int y; int x;}buf;int direction[4][2]={{1,0},{0,1},{-1,0},{0,-1}};int re[5][5];int map[5][5];int v

2016-04-10 23:24:26 403

原创 poj1061.拓展欧几里得算法的利用。挺难理解的。。。

#include long long  gcd( long long  x, long long  y ){    if( y== 0 )    {        return x;    }    return gcd( y, x% y );}void exgcd( long long  a, long long  b, long long  &x, long

2016-04-09 22:10:41 250

转载 poj1006.。

解题思路:中国剩余定理,本题难点不在编程,而是分析题目并转化为数学公式要引入本题解法,先来看一个故事 “韩信点兵”:      传说西汉大将韩信,由于比较年轻,开始他的部下对他不很佩服。有一次阅兵时,韩信要求士兵分三路纵队,结果末尾多2人,改成五路纵队,结果末尾多3人,再改成七路纵队,结果又余下2人,后来下级军官向他报告共有士兵2395人,韩信立即笑笑说不对(因2395除以3余数是1,

2016-04-09 18:12:02 204

原创 poj 1995

快速幂算法int ans = 1;a = a % c;while(b>0){if(b % 2 == 1)ans = (ans * a) % c;b = b/2;a = (a * a) % c;}将上述的代码结构化,也就是写成函数:int PowerMod(int a, int b, int c){int ans = 1;a = a %

2016-04-09 17:08:14 348

转载 蓝桥杯第十题,

没写出来。但是先把大神代码保存下来,以后或许还能学习。这几天还是挺忙的。#include struct FR{ long long a; long long b;};long long gcd( long long x, long long y ){ if ( x > y ) return gcd( y, x ); if ( y % x == 0 ) retu

2016-04-09 14:15:23 206

原创 2016蓝桥杯第九题

第一次直接冒泡,发现没这么简单。不过也是挺简单的,毕竟几个数都是从1开始到n的,标记下标和数值,两个数组,排列一下就ok的#includeint main(){ int i,t; int sum[1020],sum2[1020]; while(scanf("%d",&t)!=EOF) { int ans=0; for(

2016-04-09 14:12:21 383

原创 蓝桥杯第8题,直接暴力,三个循环

#include #include int main(){    int n,i,j,k;    int flag;    while(scanf("%d",&n)!=EOF&&n>0)    {        flag=0;    for( i = 0 ; i * i         {            for( j = 0 ; j * j

2016-04-09 14:09:59 540

转载 蓝桥杯第六题dfs方法

这个题其实dfs写还是好写很多,但是还是遇到了很多问题,毕竟不熟练,磕磕碰碰,各种找大神代码,也算是自己写的吧。。哈哈哈#include #include int flag[3][4]; //表示哪些可以填数int mpt[3][4]; //填数bool visit[10]={0};int ans = 0;void init()//初始化{ int i,j; for(i =

2016-04-09 14:08:18 344

转载 2016蓝桥杯第7题

本人不才,dfs没学好。只能先膜拜大神的dfs#include #include int mpt[3][4];int mpt_visit[3][4];int num[6];int have[13];int visit[13];int ans = 0;int Count = 0;void init(){ int k = 1; for(int i = 0 ; i <

2016-04-09 14:04:47 450

空空如也

空空如也

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

TA关注的人

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