自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

youlingjisuan的专栏

记录生活的进程

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

原创 分数的拆分

简单~~ 吐槽一下,就是判题系统不行,一样的答案不同的输出 就会判错~~数学方面的,值得思考。#include using namespace std;int main(){ int t,k; cin>>t; while (t--) { cin>>k; for (int x=1000;x>=2*k;x--) { if ((-k*x)%(k-

2013-09-28 12:15:49 632

转载 文件流

很开心哈!困扰我很长时间的一个文件流的问题解决鸟!        问题源于英语老师让我帮忙给全班同学根据学号排序,然后把名单给她。一百来号人就这样给我人工排序了!亏我还是学计算机滴!!!        现在来贴下我的代码:[cpp] view plaincopyprint?#include  #include  #in

2013-09-23 22:33:22 521

原创 cf ***

http://acm.hust.edu.cn/vjudge/contest/view.action?cid=29448#problem/B这里要注意的地方~;1,gets 的头问题 在 或者 在2,   用 gets 函数不安全,可以考虑用gets_s函数,但是好像不支持,百度了一下 vs2005版本以及以上的才有3, 输出的问题,如果是奇数,就是除不开的问题,要变化。4

2013-08-16 18:36:28 707

原创 hdu 1060

#include #include using namespace std;int main (){ int t,n; cin>>t; while (t--) { double f; cin>>n; f=n*log10((double)n); f=f-(long long)f; // 注意 这里不能是(int)f 会溢

2013-08-16 16:41:53 541

原创 hdu 2802

这一题,主要就是找循环节,当是循环节有点大。#include #include using namespace std;int s[5000];int main(){ int t; s[1]=1;s[2]=7; for(int i=3;i<=4018;i++) s[i]=(s[i-2]+(i-1)*(i-1)+i*(i*2-1))%2009;

2013-08-15 23:20:15 692

原创 poj 3692(二分匹配)

感觉说不上来,二分匹配~~#include using namespace std;const int size=202;bool vis[size];bool g[size][size];int linker[size];int vnum,unum;bool dfs( int u ){ for (int v=1;v<=vnum;v++) { if

2013-08-15 20:24:48 574

原创 hdu 1016

写这题的意义,在于纪念~~#include #include #include using namespace std;const int size=1000;char str[size+10];int s[size];int main(){ int lens,len; bool f; while(cin>>str) { memset(s

2013-08-11 22:45:10 440

原创 hdu 1019

值得思考,其题目意思: 给你一堆数 求这些数的最小公倍数~~利用最大公约数来求.gcd函数不要用递归,好像会卡掉#include using namespace std;int gcd (int a,int b){ int r; if(a<b) swap(a,b); while(b) { r=a%b; a=b; b=r; }

2013-08-10 11:41:51 458

原创 hdu 1018

大概的意思:给你一个n,输出n!的位数~~ n看到上面的讨论,知道了一个数,它的位数有一个计算公式,n的位数= int (long10(n))+1;从这里来看,n!=1*2*3*4.....*n;                           =int long10(1*2*3*4.......*n)+1;                           =int(l

2013-08-10 09:39:56 544

原创 hdu 2036(多边形面积)

水~~,只是里面有个公式还算比较好用,写一下。#include #include #include using namespace std;int x[110],y[110];int main(){ int t; double ans; while(cin>>t,t) { ans=0; for(int i=0;i<t;i++) cin>>x[i]>

2013-08-10 00:29:54 518

原创 hdu 1248(完全背包)

http://acm.hdu.edu.cn/showproblem.php?pid=1248入门水题~~#include using namespace std;struct pack{ int v,c;};pack p[5];int f[10010],maxv;void cpack(pack p){ for(int i=p.c;i<=maxv;i++)

2013-08-09 23:47:02 589

原创 hdu 2047

这个递推有点意思,稍微注意一下。#include using namespace std;long long sev[45];void tofind(){ sev[1]=3;sev[2]=8;sev[3]=22; for(int i=4;i<=40;i++) sev[i]=2*(sev[i-1]+sev[i-2]); }int main(){

2013-08-07 00:17:03 540

原创 hdu 2048

错排公式的应用。#include #include using namespace std;long long int fz[25];long long int fm[25];void tofz(){ fz[1]=0; fz[2]=1; for(int i=3;i<=20;i++) fz[i]=(i-1)*(fz[i-1]+fz[i-2]); }

2013-08-07 00:15:14 5561

原创 hdu 2049

这个比较简单,就是错排公式的简单应用。#include using namespace std;long long int fz[25];long long int fm[25];void tofz(){ fz[1]=0; fz[2]=1; for(int i=3;i<=20;i++) fz[i]=(i-1)*(fz[i-1]+fz[i-2]);}

2013-08-07 00:13:47 1863

原创 hdu 2045

稍微想一想,怎么从前面的结果推导出目前的状态。#include using namespace std;long long sev[55];int n;void tofind(){ sev[1]=3;sev[2]=6; sev[3]=6;sev[4]=18; for(int i=5;i<=50;i++) sev[i]=sev[i-1]+sev[i-2]*2;

2013-08-07 00:11:46 542

原创 hdu 4548

这一题,写的我是惊心动魄的,数据好大,原来预处理一下可以ac没有什么要特别注意的地方~#include using namespace std;const int size=1000001;bool vis[size+5];int sev[30125];int main(){ int t,s,lens,f,a,b,sum; cin>>t; len

2013-08-06 10:55:37 564

原创 1+2+3+4+。。。+n

题目描述:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。输入:输入可能包含多个测试样例。对于每个测试案例,输入为一个整数n(1输出:对应每个测试案例,输出1+2+3+…+n的值。//利用利用&&的短路特性

2013-08-05 15:09:25 1280

原创 hdu 1023

卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。卡特兰数前几项为 (OEIS中的数列A000108): 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 244662670

2013-08-04 15:48:47 817

原创 hdu 1023

卡特兰数;资料在收藏夹里#include using namespace std;int a[105][100];int main(){ int n,len; memset(a,0,sizeof(a)); a[1][1]=1; a[1][0]=1; //a[n][0] 保存长度 a[2][1]=2; a[2][0]=1; len=1; for(int

2013-08-04 10:07:22 572

原创 hdu 1022

栈学的不是很好,发现现在又不会了,拿这个经典题目来练练手~~这里要注意的就是,i和j的细节控制。#include#includeusing namespace std;int main(){ int n,i,j,k; bool t[1010]; char a[1010],b[1010]; while(cin>>n>>a>>b) { stacktrain

2013-08-03 22:22:59 606

原创 hdu 1431

素数回文串~有几个要注意的地方:1.最大的回文串比较小(9989899),可以利用减少不必要的运算~2.求是否是回文串的时间要比判断是否是素数的时候要短,先判断是否是回文串。3.数字判断可以注意一下这种写法~ 毕竟一开始都超时~#include #include #includeusing namespace std;bool isprime(int n)

2013-08-03 00:29:38 580

原创 ZSYZZS(素数)

https://www.contesthunter.org/Contest/[orzzsy%E6%9D%AF]%E6%B0%B4%E9%A2%98%E7%AB%9E%E9%80%9F%E8%B5%9B/Problem/Show/ZSYZZS题目给的数据大的吓人呀 ~描述给你两个整数a,b,请任意输出一个[a,b]内的质数输入格式两个用空格隔开的整数a和b(a输出格式

2013-08-03 00:11:07 643

原创 hdu 2527

哈夫曼树的初级应用~~忘记了,可以看看算法导论,里面讲的很详细~~很经典的一个处理方法,利用优先队列来处理。值得思考#include #include #include using namespace std;struct tr{ int t; friend bool operator <(tr a,tr b){ //自定义优先级 return a

2013-08-01 16:53:02 551

原创 hdu 2522

这个题,不错~挺简单的就是模拟除法至于循序小数,因为分母是一样的,所以要想出现一样的商,分子就会相同把分子标记一下就好了~~值得思考一下,其实一直没有想到循环小数怎么处理,看了别人的解题报告#include using namespace std;const int size=100001;int sev[size+5];bool vis[size+5];int

2013-08-01 10:02:09 529

原创 hdu 2502

一个数中1的个数;#include using namespace std;int sev[22];int findone(int n){ int c; for(c=0;n!=0;c++) n&=n-1; return c; }int main(){ int n(1),t,s; memset(sev,0,sizeof(sev));

2013-07-31 15:36:09 507

原创 二叉排序树

如果你了解二叉树的特性,和二叉排序树的排序原理的话就比较好写了,不懂的话可以 看看资料~~#include #include using namespace std;struct tree{ int date; struct tree *left; struct tree *right; };void init (tree *&t){ t=(tre

2013-07-28 17:39:50 491

原创 并查集

并查集:是数据结构里面比较简单的一种~~稍微看看,你应该就会懂,现在我来总结一下,并查集,是一种树型的数据结构,用于处理一些不相交集合(Disjoint Sets)的合并及查询问题。如果忘了,可以看自己的收集的资料~~不多讲述.入门题:hdu  1232 1272 1274 1213  1856现在详细讲解一下,省的到时候忘记了~~hdu 1232 入门题

2013-07-23 22:03:28 418

原创 hdu 2544(bellman算法)

bellman 算法;  这个算法可以处理负边,如果存在含负边的回路 会返回 0;如果有负权回路,那么第 |v| 遍松弛操作仍然会成功,这时,负权回路上的顶点不会收敛,// 也就是说low[v]>low[u]+weight[u][v]; 算法的时间复杂度是:n(VE); 还可以进行优化~分析 Bellman-Ford算法,不难看出,外层循环(迭代次数)|v|-1实际上取得是上限。由

2013-07-22 20:08:45 519

原创 hdu 2544(spfa)

新学的spfa算法,         spfa算法,就是利用更新的点来更新其他点。被更新的点,放在队列里面,当做其他点到源点的跳板,看看通过被更新的点是否可以缩短到源点的距离~~   #include #include #include const int size=99999999;using namespace std;int n,m;int map[101][1

2013-07-22 11:38:09 447

原创 Chilly Willy

http://codeforces.com/problemset/problem/248/B一道规律题,如果模拟的话,会严重超时~输入n,输出一个数是2,3,5,7的倍数,这个数的位数必须是n;#include using namespace std; int main(){ int n; while(cin>>n) { if(n<3){ cout<<"-1"

2013-07-21 18:09:09 509

原创 hdu 2544 (dijkstra)

复习算法,最短路径。单源点的最短路径问题: 给定的带权有向图G和源点v,求从v到G中其余各顶点的最短路径。dijkstra算法是解决:从某个源点到其余各顶点的最短距离。其实,说明这个是不能,,,,map[x][y]=map[y][x];有向图,带有方向的~~~#include #define size 999999999using namespace std;int

2013-07-20 18:17:23 407

原创 HDU1233 prim算法

普利姆算法入门题。 贴个水题,入门。    这道题目没有什么要注意的~。 想类似这种算法,一般都是先有个大概的思路,然后按照你想到的思路来写,顺便优化优化,最后总结一下,以后就可以一直按照你的风格来写了。思路最重要,代码只是实现。#include #include #define size 99999999using namespace std;int map[1

2013-07-20 11:44:26 513

原创 字符串函数

写字符串题目的时候,难免会遇到一些判断:某个字符是否为大写字母,小写字母之类的,现在总结一下。#include //c++ 里面的头文件#include //c语言头文件 //-----------*****-------// //下面的函数 如果为真则返回1,否则返回0 isalnum(char ch) // 检查ch是否为数字或者字母 isa

2013-07-18 22:38:13 436

原创 hdu 1203 (01背包)

01背包的小变形。这里值得注意的是:    01背包和完全背包在 求消费v,所得价值w最小情况的变形。    01背包 :f[0...v] = max;    然而 完全背包: f[0....v] = max ; f[0]=0; 这个原因应该是完全背包物品无限的吧~#include #include using namespace std;struct pack{

2013-07-18 16:00:31 440

原创 hdu 1114 (完全背包)

看到完全背包写了一下。  一遍wa,仔细看了看ac的代码,原来数值设定小了。完全背包的小变形,用来求填充存钱罐最小的费用,把max给改成min,还有要小心一下,cpack里面的写法。#include #define size 1000000000using namespace std;struct pack{ int w,c; };p

2013-07-18 12:12:57 518

原创 hdu 2602 (01背包)

01背包;写个留做纪念~~#include using namespace std;struct pack{ int c,w; };pack p[1000];int f[1001];int v;void zpack(pack p){ for(int i=v;i>=p.c;i--) f[i]=max(f[i],f[i-p.c]+p.w); }int m

2013-07-17 22:03:54 448

原创 hdu 2191

多重背包问题,一次ac.#include using namespace std;int f[101][201];int n[210];int w[101];int p[210];int main(){ int C; cin>>C; while(C--) { int m,v; cin>>v>>m; //v表示经费,m表示种类

2013-07-16 23:41:04 331

原创 nyoj 655 光棍的yy

找找规律,这题其实是一道大数题。斐波纳契数列,由于斐波那契数列的第200项很大,所以得开大一点。#include#includeint main(){ int fab[201][50]; memset(fab, 0, sizeof(fab)); int i, j, k=0; fab[1][0]=1; fab[2][0]=2; fab[3][

2013-07-16 21:11:38 679

原创 HDU 1870

#include #include using namespace std;char str[1010];stackq;int main(){ while(cin>>str) { int sum(0); while(!q.empty()) q.pop(); int len=strlen(str); for(int i=0;i<len;i++)

2013-07-15 20:57:48 467

原创 hdu 1028

这道题可以搜索,也可以递推,也可以用母函数。母函数的入门题。#include using namespace std;int c1[20000],c2[20000];int main(){ int t; while(cin>>t) { for(int i=0;i<=t;i++) c1[i]=1; memset(c2,0,sizeof(c2)

2013-07-15 20:07:14 313

空空如也

空空如也

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

TA关注的人

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