自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

傻笨

我是菜鸟,但我是勤奋的菜鸟

  • 博客(34)
  • 收藏
  • 关注

原创 poj1543

http://poj.org/problem?id=1543这题属于暴搜,不会超时#include#includeusing namespace std;void sovle(int n){    int i,j,k;    for(i=2;i*i*i    {        for(j=i;j*j*j        {            for

2013-04-26 20:49:30 536

原创 Codeforces Round #181 (Div. 2) A题

题意:把所有数按正数,负数,零分一下。      对于乘积为负数的那一组,只需要一个负数。      然后看一下剩余负数个数,如果为奇数,则把一个负数加入到零那组,剩下的所有负数和正数乘积为正数。      最后就是零那组。代码:#include#include#includeusing namespace std;int main(){    in

2013-04-26 18:54:11 466

原创 zoj2723

#includeusing namespace std;const int maxn=1000005;int a[maxn];void prime(){    int i,j;    a[0]=0;a[1]=0;    for(i=2;i        a[i]=1;    for(i=2;i    {        if(a[i])

2013-04-24 20:24:53 515

转载 poj搜索题目

1010 stamps1011 sticks Accepted 2006-08-03 04:091020 Anniversary Cake1022 Packing Unit 4D Cubes1024 Tester Program1054 The Troublesome Frog1062 昂贵的聘礼暂告一段落,先把DP题做一下,因为两者有很多交叉的地方,有很多题DP和

2013-04-23 20:31:10 689

原创 Codeforces Beta Round #34 (Div. 2) C题解

#include#include#includeusing namespace std;int main(){    int a[1100],b[1100],i,x;    char c;    int h,t;    for(i=0;i        b[i]=0;       int  n=0;    for(;;)    {

2013-04-23 20:20:22 466

原创 Codeforces Beta Round #34 (Div. 2) B 题解

买电脑,电脑价有负的,就是卖家给你钱。。(这卖家。。。亏死类。。)给你最多可以买的台数,以及每台的价格,求最多能赚多少。。。我用的快排,然后找负数。。且满足不超过最多能买的#include #include #include #include using namespace std;int main(void){    int n,m,pos;    int a

2013-04-23 19:58:20 475

原创 Codeforces Beta Round #34 (Div. 2) A题解题报告

这题很水,一定要理解什么意思,就是求相邻两个数之间差最小的两个位置,其中特别要注意的是第一个和最后一个也可以相减,可以看成是一个环!#include#include#includeusing namespace std;int main(){    int n,i,a[105],endb,x,min,h;    while(cin>>n)    {

2013-04-23 19:40:35 480

原创 杭电1203及01背包概率题

这是一道01背包概率题目,从正面考虑会有好多中情况,那么我们就可以从反面来考虑,直接考虑达到费用最大时一个学校都没有录取他时的最小概率,然后用一减就是至少得到一份通知书的最大概率,这题也是01背包的入门题目!#includeconst int maxn=10005;double dp[maxn];int value[maxn];double weight[maxn];int

2013-04-23 17:02:08 851

原创 poj3624及01背包入门题目

题目链接:http://poj.org/problem?id=3624这题是01背包的入门题目,很适合刚学01背包的人写,下面是我的代码,其实你也可以用二维写,因为我一下午都在刷01背包,习惯了这种写法,其实01背包都是种模式,不过我要特别强调一点,注意数组开的不要太小,否则就是runtime 错误!做01背包问题主要是找到谁是代价,谁是价值,然后一模一样的写就是了!#include

2013-04-23 16:14:18 861

原创 杭电2955题解题报告及01背包问题

这题要先这样想,把每个银行的钱看作是代价,而不被抓住的概率是价值!这样就简单多了,直接01背包搞起,其实01背包的代码都是差不多,只不过是有些地方要改变,而且做01背包问题主要是找到谁是代价,谁是价值!这样就直接套公式了!#include#include#include#includeusing namespace std;double dp[10010];int va

2013-04-23 15:49:05 926

转载 背包九讲

背包问题九讲P01: 01 背包问题题目有 N 件物品和一个容量为 V 的背包。第 i 件物品的费用是 c[i],价值是 w[i]。求解将哪些物品装入背包可使价值总和最大。基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。用子问题定义状态:即 f[i][v]表示前 i 件物品恰放入一个容量为 v 的背包可以获得的最大价值。则其状态转移方程便是

2013-04-23 15:13:59 510

原创 杭电2546题解题报告及01背包问题

这是我开始尝试着做背包问题,其实背包问题就是一个模式,掌握其二维的转移方程及一维的状态转移方程!#include#include#include#includeusing namespace std;const int maxn=1005;int dp[maxn];int value[maxn];int weight[maxn];int nvalue;i

2013-04-23 15:11:53 857

原创 Croc Champ 2013 - Qualification Round A题解题报告

今晚上闲来无事就想刷刷cf,看别人说这是道水题,就做做看,一开始还不懂题意,后面看懂了,题意就是找出两个相同的一共有多少组,相同的超过三个以上就输出-1,最坑爹的是全部是0还是输出0!原来这题中0对这题就没有影响!有0与没有0是一样的!还有就是a[i] == a[i + 1] && a[i + 1] == a[i + 2]是这样运行的,语法 先是a[i + 1] 和a[i + 2] 比较

2013-04-22 21:59:29 626

转载 八皇后问题,杭电2553

方法一:#include #define NUMS 10/*输入的数字1---10*/int N;/*棋盘*/int chessboard[11][11];/* 用来记录拜访数目 */int cal;/*检查皇后放置此行此列是否可以,可以返回1,不可以返回0此递归是一行一行找的,K是棋盘的长度*/int dfs_check(int row

2013-04-20 17:20:57 946

转载 01背包

动态规划的基本思想:将一个问题分解为子问题递归求解,且将中间结果保存以避免重复计算。通常用来求最优解,且最优解的局部也是最优的。求解过程产生多个决策序列,下一步总是依赖上一步的结果,自底向上的求解。动态规划算法可分解成从先到后的4个步骤:1. 描述一个最优解的结构,寻找子问题,对问题进行划分。2. 定义状态。往往将和子问题相关的各个变量的一组取值定义为一个状态。

2013-04-17 22:37:54 454

原创 POJ1321

#include#includeusing namespace std;bool chess[9][9];bool vist_col[9];  //列标记int status;  //状态计数器int n,k;void DFS(int row,int num)  //逐行搜索,row为当前搜索行,num为已填充的棋子数{    if(num==k)

2013-04-17 17:55:28 526

原创 杭电1241

这题题目我就没有看懂,还是学长告诉的,意思就是:@在一块的算作一块油田,求一共有多少块油田!坑爹吧!写完后,更加坑爹的事发生了,我定义了全局变量后,竟然还定义了局部变量!害的我找了好久,还是在学长帮助下找到错误的!#includechar a[100][100];int m,n;int movex[8][2]={{1,0},{1,-1},{1,1},{0,-1},{0,1},{-1

2013-04-16 16:10:38 503

原创 杭电1312,搜索题

#include#include#include#includeusing namespace std;int w,h,i,j,sum=0;char map[30][30];char movex[4]={-1,1,0,0},movey[4]={0,0,-1,1};void dfs(int x,int y){    int i;//要使用局部变量!

2013-04-15 20:25:58 474

原创 简单搜索题!

设有一个4*4的棋盘,用四个棋子布到格子中,要求满足以下条件:      (1)任意两个棋子不在同一行和同一列上;      试问有多少种棋局,编程把它们全部打印出来。 代码如下:#include#include#include#include#includeusing namespace std;int n=4, m=4, used_line[12

2013-04-15 18:58:39 528

转载 杭电题目分类

分类一:基础题:1000、1001、1004、1005、1008、1012、1013、1014、1017、1019、1021、1028、1029、1032、1037、1040、1048、1056、1058、1061、1070、1076、1089、1090、1091、1092、1093、1094、1095、1096、1097、1098、1106、1108、1157、1163、1164、117

2013-04-14 21:20:48 563

原创 杭电1016

#include#include#includeint a[21],shuzi[21],prime1[38]={0};int n;int prime(int x){ int i; for(i=2;isqrt(x);i++) { if(x%i==0) { return 0;

2013-04-14 21:12:50 386

转载 杭电1010

#include#includeint n,m,t,flag;int starx,stary,doorx,doory,wallnumber;int movex[]={0,-1,0,1},movey[]={-1,0,1,0};char maze[7][7];void dfs(int,int,int); //深搜int main(){ int i,j; whi

2013-04-14 21:11:39 619

转载 搜索

搜索有以下几种算法: 枚举算法:也即列举问题的所有状态从而寻找符合问题的解的方法。 适合用于状态较少,比较简单的问题上。 广度优先搜索:从初始点开始,根据规则展开第一层节点,并检查目标节点是否在这些节点上,若没有,再将所有的第一层的节点逐一展开,得到第二层节点,如没有,则扩展下去,直到发现目标节点为止。比较适合求最少步骤或最短解序列的题目。 一般设置一个队列queu

2013-04-14 20:49:30 520

原创 杭电2089

#include#includeusing namespace std;const int maxn=1000000+5;int a[maxn];int main(){    int i,j,n,m,temp,t,x;    int sum=0,flag=1;    for(i=1;i    {        x=i;        flag=1;

2013-04-14 20:41:37 859

转载 STL中set容器

STL中的set容器的一点总结1.关于setC++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作。vector封装数组,list封装了链表,map和set封装了二叉树等,在封装这些数据结构的时候,STL按照程序员的使用习惯,以成员函数方式提供的常用操作,如

2013-04-14 20:40:35 585

原创 杭电1015

#include#include#includeusing namespace std;int m,a,b,c,d,e;int A,B,C,D,E;char h[28];bool cmp(const char &a,const char &b){    return (b-a)>=0?false:true;}int main(){    int

2013-04-13 15:22:28 541

转载 杭电1010

#include#include#includeint n,m,t,flag;int starx,stary,doorx,doory,wallnumber;int movex[]={0,-1,0,1},movey[]={-1,0,1,0};char maze[7][7];void dfs(int,int,int);  //深搜int main(){ int

2013-04-13 13:44:38 483

转载 二分法

“二分法”求二元方程的解思想:二分法属于数学问题,但为了说清楚问题就再说一下原理。先取二元方程f(x)的两个初略解x1和x2,若f(x1)与f(x2)的符号相反,则方程f(x)=0在[x1,x2]区间至少有一个根;若f(x)在[x1,x2]区间单调,则至少有一个实根;所以取x3=(x1+x2)/2,并在x1和x2中舍去和f(x3)同号者,那么解就在x3和另外那个没有舍去的初

2013-04-12 16:47:23 619

转载 关于阶乘的几道智力题

关于阶乘的几道智力题1 100的阶乘,末尾有几个连续的零?(如:2100的最后有2个零)2 1到100的阶乘的和的末位数是几?3 10000的阶乘,末尾有多少个连续的零?解答和分析:1 100的阶乘,末尾有几个连续的零?答案是24。思路有两个:先讲笨方法,采用分类讨论的方法。你可以知道100的阶乘里有无数的2,比如8=2*2*2等等。而10是由2*5

2013-04-12 16:36:42 1015

转载 C++ map的基本操作和使用

C++ map的基本操作和使用2010-06-06 09:15:56   来源:网络   评论:0 点击:60881、map简介1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。2、map的功能1 自动建立Key - value的对应。key 和 v

2013-04-12 16:06:14 576

原创 杭电2522

这题用map来存储!把分子存到map中,然后当再次出现相同分子时就结束!#include#include#includeusing namespace std;int main(){    int i,n,k,m;    while(scanf("%d",&n)==1)    {        while(n--)        {

2013-04-12 16:03:58 513

原创 杭电1016

这是一道典型的搜索题!我一开始还看不懂!后来再别人的帮助下慢慢理解!#include#include#includeint a[21],shuzi[21],prime1[38]={0};int n;int prime(int x){    int i;    for(i=2;i    {        if(x%i==0)        {

2013-04-12 14:41:03 563

原创 杭电2115题解题报告

题目链接如下:http://acm.hdu.edu.cn/showproblem.php?pid=2115#include#includeint main(){long int a[10];int i,j,k,n,b[10][2],t,s2[10],h;char s[10][50],s1[50];k=0;h=1;while(1){

2013-04-10 21:52:24 570

原创 最大连续子序列

杭电1231题心得这是一道求最大连续子序列的题目,思路是转移方程是:f(n)=max(f(n-1)+a[i],a[i])!题目链接如下:http://acm.hdu.edu.cn/showproblem.php?pid=1231代码如下:#include#include#includeint a[10000],d[10000];int pp(int n,int

2013-04-10 15:19:07 484

空空如也

空空如也

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

TA关注的人

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