自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

九野的博客

新窝:cygmasot.com

  • 博客(41)
  • 资源 (1)
  • 收藏
  • 关注

原创 HDU 4361 Dead or alive

这种神题放在多校是何意图。。#include #include int main(){ srand(1121139700); int caseNumber; scanf("%d", &caseNumber); while(caseNumber --) if(rand() & 1) printf("alive!\n");

2013-08-22 20:57:24 1763

原创 HDU 4365 Palindrome graph 模拟题

题意:求用k种颜料将n*n大的方格涂满的方法有多少种,这里已经有m个格子上过色了涂满后的方格要满足:中心对称,翻转对称,旋转对称 思路:1、从对称可以得到 方格可以分为对称的8瓣 所以我们用2条对角线和 2条中位线 把方格切成八瓣,每一瓣的方格数有 0 + 1 + 2 + …… + [n+1]/2  (方格数计算是包含分割线上的方格)2、若不考虑已上过色的格子 方案就是 k^

2013-08-22 18:42:17 2063 2

原创 POJ 2411 Mondriaan's Dream

题意:在n ,m 大的格子上铺满1*2的方格,问最多有多少种铺法这滚动数组的利用率是非常高的,所以理解也不太快,但代码简短易写 #include#define N 12#define ll long longll dp[2][1<<N],n,m,cur;void updata(ll a,ll b){ if(b & 1<<m )dp[cur][b^(1<<m)] +=

2013-08-21 10:16:44 2222 1

原创 HDU 4350 Card

打表找规律,比赛应付了一下,其实还可以把内存再优化一半掉,下面的0都是手动填充的,可以优化掉题意:T个测试数据下面52个数字表示 从栈顶到栈底的52个数n l r表示 从栈顶下数 [l,r] 这个区间的数都放到栈顶 这样n次操作后的结果这里可以猜想 n 操作应该是有重复的,也就是取模n%MOD , MOD是个关于 l ,r 的表达式省时间就直接打表了 #in

2013-08-20 18:49:27 1814

原创 白书的一些题目

一.动态规划参考资料:刘汝佳《算法艺术与信息学竞赛》《算法导论》推荐题目:http://acm.pku.edu.cn/JudgeOnline/problem?id=1141简单http://acm.pku.edu.cn/JudgeOnline/problem?id=2288中等,经典TSP问题http://acm.pku.edu.cn/Jud

2013-08-19 19:48:21 3172

原创 POJ 3765 Xiang Hex

模拟题题意:在如图中的蜂窝中,填上给定坐标的字母 #include#includechar map[21][10];int main(){ int i,a,n,j; while(scanf("%d",&n),n) { for(i=0;i<21;i++) for(j=0;j<10;j++) map[i][j]=' '; while

2013-08-19 14:04:00 1920

原创 poj 3767 I Wanna Go Home

题意:n个点(从1-n编号)m条边下面m行 u v dis 表示双向边u v的距离n个点表示 每个点被势力1或2占据这里保证1 城市由势力1占据,2城市由势力2占据 思路:求2遍spfa()从1城市开始求所有 走到所有都是势力1的城市的距离,存在d[1]数组中,d[1][ i ] 表示经过 i 城市任意都是势力1占领的城市的点能到达 1点的最短距离再由2城市跑一

2013-08-18 19:54:09 1593

原创 矩阵快速幂模版

#define Matr 105 //矩阵大小struct mat//矩阵结构体,a表示内容,size大小 { int a[105][105],size; mat() { size=0; memset(a,0,sizeof(a)); }};void print(mat m)//输出矩阵信息,debug用

2013-08-18 09:09:48 3655

原创 HDU 2276 Kiki & Little Kiki 2 矩阵快速幂

题意:m表示m秒下面一行表示n个灯(灯是排成环的,也就是说头尾相接)灯亮暗由 1 0表示对于任意一盏灯,当左边灯亮时,下一秒该灯将变换状态问:输出m秒后灯的状态 因为每盏灯都由前一秒的该灯和该灯左边那盏灯的状态决定,所以可以写出一个矩阵当有5盏灯时:1 0 0 0 11 1 0 0 0 0 1 1 0 00 0 1 1 00 0 0 1 1原来的

2013-08-18 09:06:50 1605

原创 HDU 2273

n组数据下面n行表示车长度 车速度结果:所有车长/最小车速快快的水掉。。#include#include#include#include#define ll doubleusing namespace std;inline ll Max(ll a,ll b){return a>b?a:b;}inline ll Min(ll a,ll b){return

2013-08-17 14:28:48 1266

原创 HDU 2275 multiset

题意:n个操作Push 入容器Pop弹出一个 满足开始用set打了一遍wrong了,这里入容器的数是有重复的,所以用multiset #include#includeusing namespace std;multisetss;multiset::iterator p,q;int main(){ int n,t; char c[5]; w

2013-08-17 14:07:50 1454

转载 multiset

原文出自http://blog.csdn.net/longshengguoji/article/details/8546286使用set或multiset之前,必须加入头文件multiset中允许有重复元素。 std::setint> myset;std::setint>::iterator it;std::pairint>::iterator,bool> re

2013-08-17 11:01:55 1404

原创 ZOJ 3195 Design the city LCA转RMQ

题意:给定n个点,下面n-1行 u , v ,dis 表示一条无向边和边权值,这里给了一颗无向树下面m表示m个询问,问 u v n 三点最短距离典型的LCA转RMQ #include#include#include#define N 100000#define INF 1<<29#define Logo 17using namespace std;i

2013-08-16 14:20:09 1518

转载 ST算法

原文链接:http://kmplayer.iteye.com/blog/575725ST算法(Sparse Table):它是一种动态规划的方法。 以最小值为例。a为所寻找的数组. 用一个二维数组f(i,j)记录区间[i,i+2^j-1](持续2^j个)区间中的最小值。其中f[i,0] = a[i]; 所以,对于任意的一组(i,j),f(i,j) = min{f(i,j-1),f(

2013-08-15 21:18:42 2381

原创 HDU 4349 Xiao Ming's Hope 2012 Multi-University Training Contest 5

题意:给定n ,求n 的组合数中,奇数的个数数论水题,打表找规律的 #include int main(){ int n,sum,i; while(scanf("%d",&n)!=EOF) { if(n%2!=0) { sum=0; for(i=0;i<=n/2;i++) { if((n&i)==i) s

2013-08-15 19:38:15 1340

原创 HDU 4342 History repeat itself 2012 Multi-University Training Contest 5

题意:T个测试数据下面给出n ,从自然数( 从1开始 )中找到第 n 个不能开平方的数M  以及 M在图中公式求出的结果1  2  3  4  5  6  7   8  9  10  11  12  13  14  15  16  17  18    1  2       3  4  5  6        7     8     9  10  11  12         13

2013-08-15 19:29:06 1457

原创 ZOJ 3630 Information 强连通

题意:n m表示n个节点,m条边,下面m行a b 表示a-b点有一条有向边题目:给定有向图,删去一个点后,可以求出该图中强连通分量中最大的点数问:删去某点后,最大点数 最小是多少思路:枚举删点,强连通求最大分量 mark#include#include#include#include#include#include#include#include#define

2013-08-14 15:31:35 1747

原创 强连通tarjan模版

#include#include#include#include#include#include#include#include#define N 1000#define INF 1152921504606846976#define R(x) x<<1|1#define L(x) x<<1#define Mid(x,y) (x+y)>>1#define ll intu

2013-08-14 14:12:35 11619 5

转载 【转】STL中stack的用法

手写多,学习下STL,和queue还有稍稍有点差别,当记录贴水一水转载出处http://hi.baidu.com/love_himself/item/a2174fda363fd6d3241f404b  stack也是程序设计中常常用到的数据容器,STL为我们提供了stack的实现,因此在使用stack时必须包含头文件,并使用统一命名空间。

2013-08-14 14:01:54 1573

原创 ZOJ 3632 Watermelon Full of Water 线段树

线段树题意:给定n表示n天,第一行为n天每天西瓜价格,第二行为该天买的西瓜能吃的天数问,每天都要有西瓜吃,到n天花的钱的最小值(注意,当买了第k天的西瓜,则之前的西瓜将被丢弃,也就是说,天数的计算取决于最后一次买的西瓜)思路:买或不买 第i天的西瓜, 则第i天的花费为use[i] = Min( use[i-1] +today_price[i] , use [i] ); // 初

2013-08-14 10:47:42 1513

原创 ZOJ 3626 Treasure Hunt I 树形背包

题意:给定一颗无向树和点权值,问遍历树day次能得到的最大权n表示n个结点,下面一行表示所有点的权值下面n-1行给出边和边的花费最后一行给出起点和day一个树形dp 状态转移:dp[x][j]=Max( dp[v][k] + dp[x][ j-dis[x][v]-k ] , dp[ x ][ j ] );#include#include#

2013-08-14 09:13:58 1492

原创 ZOJ 3629 Treasure Hunt IV

题意:若n满足求和 (k从1-n)[n/k]  结果是偶数,则n称为xx数  给定a,b 问区间内是xx数的有多少个 ([]是取整符号)数论不大好,就直接找规律做了 #include#include#includeusing namespace std;#define N 10000000#define F(x) 2*x*x-x//F(0)=0#defi

2013-08-13 20:26:08 1220

原创 ZOJ 3623 Battle Ships

题意:n m(武器种类n,塔m血) 目标,计算推到塔最短时间下面n行a b表示建该武器需要a秒,建成后每秒造成m血 果果的完全背包 #include#include#include#include#include#include#include#define N 40#define M 400using namespace std;i

2013-08-13 20:21:44 1457

转载 两圆相交求面积

转载自 http://blog.sina.com.cn/s/blog_850498e20100w6fq.html假设半径小的圆为c1,半径大的圆为c2。c1的半径r1,圆心坐标(x1,y1)。c2的半径r2,圆心坐标(x2,y2)。d为两圆圆心连线的长度。相交面积为Sd=sqrt((x1-x2)^2+(y1-y2)^2)(1)如果r1+r2那么两圆相离,相交面积

2013-08-10 22:02:37 7665

原创 HDU 4576(2013杭州邀请赛) 滚动数组+模拟过程

一个求概率的题目,模拟过程用个类似滚动数组的思路如代码:#include#include#include using namespace std;#define N 201double sum[2][N];//滚动数组int main(){ int i,j,n,m,l,r,w,dis; while(scanf("%d %d %d %d",&n,&m

2013-08-10 20:57:54 1422

原创 HDU 4585 Shaolin 2013杭州邀请赛

题意无坑,不再赘述这里题目暴力会超时,所以用STL,时间是O(nlogn),所以跑起来还是比较理想的下面附几组数据//171MS 3404K 732B C++ #include#include using namespace std;struct node{ int id,fi; node(){} node(int i ,int f):id(i),fi(f){}

2013-08-10 20:37:19 1599

原创 KMP模版

//刘汝佳版,下面T是长的字符串,f是失配数组#include char T[10000],P[100];//从0开始存int f[100];//记录P的自我匹配void getFail(char *P,int *f){ int m=strlen(P); f[0]=f[1]=0; for(int i=1;i<m;i++){ int j=f[i]; while

2013-08-09 20:07:07 3132 1

原创 HDU 1358 Period 求前缀长度和最小循环节长度

题意:求该字符串(前面一部分)存在循环的最小循环节是多少,输出所有满足该条件的  前缀长度和最小循环节长度#include char P[1000010];//从0开始存int f[1000010];//记录P的自我匹配int Len;void getFail(){ int m=Len; f[0]=f[1]=0; for(int i=1;i<m;i++){ int j=f[i

2013-08-09 16:19:45 2062 1

原创 HDU 1711 Number Sequence KMP裸题

这个是MP,没有对f 数组优化过,所以说KMP有点不准确#include int a,b;int T[1000010],P[10010];//从0开始存int f[10010];//记录P的自我匹配void getFail(){ int m=b; f[0]=f[1]=0; for(int i=1;i<m;i++){ int j=f[i]; while(j&&P[i]!=P

2013-08-09 15:45:13 1524

原创 树状数组模版

一维数组数组形式inline int Lowbit(int x){return x&(-x);}void change(int i,int x)//单点更新i点改为x{ while(i<=n) { c[i]+=x; i+=Lowbit(i); }}int sum(int x){//区间求和 [1,x]

2013-08-09 10:34:17 1556

原创 POJ 2676 Sudoku

简单数独#include #includestruct node{ int x,y;}p[90];int map[10][10],num;bool success;bool OK(node P,int k){//P这个点填入k int i; for(i=0;i<9;i++)if(map[P.x][i]==k || map[i][P.y]==k)return false;//数

2013-08-08 22:24:56 1079

原创 HDU 1028 Ignatius and the Princess III

题意:n的划分个数,是组合数,排列不重复计算水题mark#include#include#define N 130int dp[N][N];int Maxn[N][N];int main(){ memset(dp,0,sizeof(dp)); memset(Maxn,0,sizeof(Maxn)); int i,j,n; dp[1][1]=1; Maxn[0][0]=1;

2013-08-08 10:55:19 2111

原创 HDU 2845

题意:如图中所示,选一个数后,它左右两边的数   和   上下2行的数不能再选,问这样选出的数和的最大值思路:对每一行求出:这一行选数字的最大值(也就是 i行 做一个最大值dp[i] ,则这一行的最大值是 dp[i][m] )对列来求dp时 ,已知每一行的最值是 dp[i][m],则这里做一个小dp2mark#include #include #define N 2000in

2013-08-07 22:45:55 1337

原创 ZOJ 2996 (1+x)^n

题意:给定 n,i问 (1+x)^n 展开式中,x^i 前面的系数是多少,结果对2取模显然这里的系数是C(n,i) 问题可以转化为:C(n,i)是奇数还是偶数公式: C(n,i) 为奇数时 n&i == i#include int main(){ int i,n; while(~scanf("%d%d",&n,&i)){ if((n&i) == i)printf("

2013-08-04 18:23:23 1408

原创 POJ 2002 Squares Hash

题意:给定n个点下面n行表示n个坐标,问最多能组成几个正方形这里正方形是:遍历其中2个点,判断另外2个点是否存在//下面的公式来自http://blog.csdn.net/lyy289065406/article/details/6647405已知: (x1,y1)  (x2,y2)则:x3=x1+(y1-y2)   y3= y1-(x1-x2)x4=x2+(y1-

2013-08-03 22:38:45 1581 1

转载 multimap 多重映照容器

multimap 与 map 一样,都是使用红黑树对记录型的元素数据,按元素键值的比较关系,进行快速的插入、删除和检索操作,所不同的是 multimap 允许将具有重复键值的元素插入容器。在 multimap 容器中,元素的键值与元素的映照数据的映照关系,是多对多的,因此,multimap 称为多重映照容器。multimap 与 map 之间的多重特性差异,类似于 multiset 与 set 的

2013-08-03 21:10:38 1776

原创 HDU 2517 棋盘分割

题意:n刀切割棋盘下面是8*8的棋盘,每个数字代表棋盘对应点的权值,问切割n刀后,每一块的和  的均方差最小是多少均方差的公式需要先化简: 由上式得,均方差最小 显然是要 Xi^2 最小d[k][x1][y1][x2][y2]代表棋盘从(x1,y1)->(x2,y2)已经切了k刀 获得的最小的平方和用sum[i][j] 代表 从(1,1)点 到 (i,j)点的权

2013-08-03 12:27:23 2342

原创 HDU4565 && 2013年长沙邀请赛A题

部分转自http://blog.csdn.net/crazy______/article/details/9021169#includeusing namespace std;__int64 A[3][3],s[3][3],tmp[3][3];void fun(__int64 n,__int64 m){ __int64 i,j,k; for(i=1;i<=2;i+

2013-08-02 22:08:37 1518

原创 HDU 3078 Network LCA

题意:n个点 m个询问,下面一行是n 个点的权值 再下面n-1行是双向的边然后m个询问:k u v 若k==0,则把u点的权值改为v,否则回答u->v之间最短路经过点的权值中  第k大的值是多少木有AC。。勿扔OJ可以拿来学习RMQ思路:跑个RMQ  求出LCA(u,v) 然后只要登山坡一遍就得到u->v的点,记下这些点的权值,再排个序就有第k大的数了下面附几个测试案例和答案

2013-08-02 20:03:47 1748

转载 HDU 4571 Travel in time 2013 ACM-ICPC长沙赛区全国邀请赛G题

一个背包的问题 先floyd跑个最短路再背包一下(这里的背包不是连续的)#include #include #include #include #include #include #define maxn 110#define inf 2139062143using namespace std;int g[110][110];int dp[maxn][310];st

2013-08-02 13:01:11 1572

九野的模版3.15.10.pdf

http://blog.csdn.net/acmmmm

2015-12-19

空空如也

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

TA关注的人

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