- 博客(72)
- 收藏
- 关注
原创 usaco 180 -- Your Ride Is Here
/*ID:18724601LANG:C++TASK:ride*/#include#include#includeusing namespace std;char str1[10],str2[10];int main(){ freopen("ride.in","r",stdin); freopen("ride.out","w",stdout); while
2015-01-23 00:05:57 314
转载 树状数组应用
原文地址:http://blog.csdn.net/maiyuetong/article/details/6661496一维树状数组常用的3个函数int lowbit(int x) //取x的最低位1,比如4,则返回4,如5,则返回1 { return x&(-x); } void update(int i, int val) //将第i个元素增加v
2015-01-22 00:01:41 359
原创 HDU 1753 -- 大明A+B(Java)
注意要求输入最简形式,小数后面没有多余的0,也没有前导0.import java.util.*;import java.math.*;public class Main { public static void main(String[] args) { Scanner cin=new Scanner(System.in); while(cin.hasNextBigDecim
2015-01-19 23:27:32 346
原创 HDU 1715 大菲波数(Java)
题目大意:求出第pi个斐波那契数。f(1)=f(2)=1 f(n)=f(n-1)+f(n-2) n>=3。 import java.util.*;import java.math.*;public class Main { public static void main(String[] args) { BigInteger[] f=new BigInteger[10
2015-01-19 23:25:28 365
原创 HDU 1316 -- How Many Fibs?(Java)
题目大意: 给出两个数,计算这两个数之间有多少个斐波那契数。f1 := 1 f2 := 2 fn := fn-1 + fn-2 (n >= 3) 方法一:提前把一定范围内的斐波那契数列求出来 相当于打表import java.util.*;import java.math.*;public class Main { public static void main(
2015-01-19 23:22:44 281
原创 HDU 1063 -- Exponentiation(Java)
题目大意:给出一个高精度大数 ,一个整数n ,计算大数的n次方。要注意的是输出格式,忽略小数部分多余的0,以及前导0,;比如,得到的结果为0.1,实际输出的数是 .1; 得到的结果为1.000,实际输出的数是 1.import java.util.*;import java.math.*;public class Main { public stati
2015-01-19 23:15:05 356
原创 HDU 1047 -- Integer Inquiry(Java)
题目大意:输入n组数据,每组数据中又有若干长度不大于100的整数,以0结束每组数据的输入,求每组中数据之和。每两组数据输入之间有一行空格,输出也是如此。import java.util.*;import java.math.*;public class Main { public static void main(String[] args) { Scanner cin=new
2015-01-19 22:51:24 334
原创 HDU 1010 -- Tempter of the Bone(dfs+奇偶剪枝)
题目大意:给出三个数,n,m,t,前两个数代表迷宫的大小,第三个数代表从迷宫入口到出口的时间,要求恰好在这个时间到达迷宫出口。思路分析:因为不是求最短到达迷宫出口的时间,而是要求在固定的时间到达迷宫出口,也就是到达迷宫出口的路径不一定是最短的,所以不能用bfs,而是改用dfs,但是要注意剪枝,我就因为没有进行剪枝而超时了一次,这里使用的是奇偶剪枝,什么意思呢?奇偶剪枝:
2015-01-17 23:18:51 385
原创 HDU 2099 -- 整除的尾数
题目大意:一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢?#includeint num[100];int main(){ int a,b; while(~scanf("%d%d",&a,&b),(a||b)){ int cnt=0; if(a%b==0){ for(int i=0
2015-01-17 16:43:06 343
原创 HDU 2081 -- 手机短号
题目大意:所有的短号都是是 6+手机号的后5位,比如号码为13512345678的手机,对应的短号就是645678。 给你一个11位长的手机号码,输出对应的短号。#include#includechar num[12];char n[10];int main(){ int t; scanf("%d",&t); getchar(); while(t--){
2015-01-17 16:41:44 963
原创 HDU 2054 -- A|B?
#includeint main(){ int t; scanf("%d",&t); while(t--){ int a,b; scanf("%d%d",&a,&b); if(a%b==0) printf("YES\n"); else printf("NO\n"); }}
2015-01-17 16:39:52 302
原创 HDU 2071 -- Max Num
#includedouble a[110];int main(){ int t; scanf("%d",&t); while(t--){ int n; scanf("%d",&n); for(int i=0;i<n;i++) scanf("%lf",&a[i]); double ma
2015-01-17 16:38:39 312
原创 HDU 2061 -- An easy problem
题目大意:我们设定 f(A) = 1, f(a) = -1, f(B) = 2, f(b) = -2, ... f(Z) = 26, f(z) = -26; 给出x ,y,计算y+f(x);#includeint main(){ int t; scanf("%d",&t); while(t--){ getchar(); char c;
2015-01-17 16:36:44 315
原创 HDU 2043 -- 密码
题目大意:一个比较安全的密码至少应该满足下面两个条件: (1).密码长度大于等于8,且不要超过16。 (2).密码中的字符应该来自下面“字符类别”中四组中的至少三组。 这四个字符类别分别为: 1.大写字母:A,B,C...Z; 2.小写字母:a,b,c...z; 3.数字:0,1,2...9; 4.特殊符号:~,!,@,#,$,%,^; 给你一个密码,你
2015-01-17 16:34:03 343
原创 HDU 2039 -- 三角形
#include#includeint main(){ int n; scanf("%d",&n); while(n--){ double a,b,c; scanf("%lf%lf%lf",&a,&b,&c); if(a+b>c&&a+c>b&&b+c>a) printf("YES\n");
2015-01-17 16:31:59 350
原创 HDU 2032 -- 杨辉三角
#include#includeint a[35][35];void f(){ memset(a,0,sizeof(a)); a[1][1]=1; for(int i=2;i<35;i++){ for(int j=1;j<=i;j++) a[i][j]=a[i-1][j]+a[i-1][j-1]; }}int mai
2015-01-17 16:31:22 392
原创 HDU 2031 -- 进制转换
题目大意:输入一个十进制数N,将它转换成R进制数输出。#includechar c[100];int main(){ int n,r; while(~scanf("%d%d",&n,&r)){ if(n<0){ printf("-"); n=-n; } int cnt=0;
2015-01-17 16:30:04 315
原创 HDU 2029 -- Palindromes _easy version
题目大意:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。请写一个程序判断读入的字符串是否是“回文”。#include#includechar str[100];int main(){ int n; scanf("%d%*c",&n); while(n--){ gets(str); int
2015-01-17 16:27:52 336
原创 HDU 2027 -- 统计元音
题目大意: 统计每个元音字母在字符串中出现的次数。#include#includechar str[110];int num[5];char y[5]={'a','e','i','o','u'};int main(){ int n; scanf("%d",&n); getchar(); while(n--){ memset(num,0,
2015-01-17 16:26:27 361
原创 HDU 2026 -- 首字母变大写
题目大意:输入一个英文句子,将每个单词的第一个字母改成大写字母。#include#include#includechar str[110];int main(){ while(gets(str)){ int len=strlen(str); str[0]=toupper(str[0]); for(int i=1;i<len;i++
2015-01-17 16:24:26 469
原创 HDU 2025 -- 查找最大元素
题目大意:对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”。#include#include#includechar str[110];int main(){ while(~scanf("%s",str)){ int len=strlen(str); char maxn='a'; for(int i=
2015-01-17 16:22:30 405
原创 HDU 2024 -- C语言合法标识符
题目大意:输入一个字符串,判断其是否是C的合法标识符。#include#includechar s[55];int main(){ int n; scanf("%d",&n); getchar(); while(n--){ gets(s); int len=strlen(s); if(s[0]>='0'&&s
2015-01-17 16:20:48 388
原创 HDU 2023 -- 求平均成绩
#include#includeint a[55][10];int main(){ int n,m; while(~scanf("%d%d",&n,&m)){ double avec[10],aver[55]; memset(avec,0,sizeof(avec)); int count=0; for(int i
2015-01-17 16:18:43 374
原创 HDU 2022 -- 海选女主角
题目大意:m*n行矩阵,输出绝对值最大的数及其位置。代码实现:#include#includeint main(){ int m,n; while(~scanf("%d%d",&m,&n)){ int a[100][100]; int fmax=0; int x,y,flag=0; for(int i=0;
2015-01-16 22:02:43 421
原创 HDU 2021 -- 发工资咯
题目大意:如果每个老师的工资额都知道,最少需要准备多少张人民币,才能在给每位老师发工资的时候都不用老师找零呢? 这里假设老师的工资都是正整数,单位元,人民币一共有100元、50元、10元、5元、2元和1元六种。 代码实现:#includeint main(){ int n; while(~scanf("%d",&n),n){ int cnt=0;
2015-01-16 22:00:06 306
原创 HDU 2020 -- 绝对值排序
题目大意:输入n(n代码实现:#include#include#include#includeusing namespace std;int cmp(int a,int b){ return abs(a)>abs(b);}int main(){ int n; while(~scanf("%d",&n),n){ int a[110];
2015-01-16 21:57:51 385
原创 HDU 2019 -- 数列有序!
题目大意:有n(n代码实现:#include#include#includeusing namespace std;int main(){ int n,m; while(~scanf("%d%d",&n,&m),(n||m)){ int a[110]; for(int i=0;i<n;i++) scanf("%
2015-01-16 21:55:58 366
原创 HDU 2017 -- 字符串统计
题目大意:对于给定的一个字符串,统计其中数字字符出现的次数。代码实现:#include#include#includeint main(){ int n; while(~scanf("%d",&n)){ while(n--){ int cnt=0; char s[1000]; sc
2015-01-16 21:53:48 364
原创 HDU -- 2016 数据的交换输出
题目大意:输入n(n代码实现:#include#includeint a[110];int main(){ int n; while(~scanf("%d",&n),n){ int ans; int smin=1e9; for(int i=0;i<n;i++){ scanf("%d",&a[i])
2015-01-16 21:51:51 435
原创 HDU 2015 -- 偶数求和
题目大意:有一个长度为n(n代码实现:#includeint main(){ int n,m; int a[110]; a[0]=2; for(int i=1;i<=100;i++) a[i]=a[i-1]+2; while(~scanf("%d%d",&n,&m)){ int i,j,k,sum=0;
2015-01-16 21:50:15 297
原创 HDU 2014 -- 青年歌手大奖赛_评委会打分
题目大意:青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分。代码实现:#include#include#includeusing namespace std;int a[110];int main(){ int n; while(~scanf("%d",&n)){ dou
2015-01-16 21:48:13 377
原创 HDU 2013 -- 蟠桃记
题目大意:第一天悟空吃掉桃子总数一半多一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一半多一个,到第n天准备吃的时候只剩下一个桃子。聪明的你,请帮悟空算一下,他第一天开始吃的时候桃子一共有多少个呢?代码实现:#includeint main(){ int n; while(~scanf("%d",&n)){ int nn=1;
2015-01-16 21:45:28 384
原创 HDU 2012 --- 素数判定
题目大意:对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39代码实现:#include#includeconst int maxn=2600;int flag[maxn];void Prime(){ memset(flag,0,sizeof(flag)); flag[0]=1,flag[1]=1; for(int i=2;i<
2015-01-16 21:42:22 296
原创 HDU 2011 -- 多项式求和
题目大意:1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... 求出该多项式的前n项的和。代码实现:#includeint main(){ double n; while(~scanf("%lf",&n)){ double m; for(double i=1;i<=n;i++){ scanf("
2015-01-16 21:40:13 323
原创 HDU 1023 -- Train Problem II (卡特兰 Java大数)
题目大意:一共N列火车,一共有多少进站出站顺序。C实现:#include#includeconst int maxn=110;int a[maxn][maxn],b[maxn];void Catalan(){ a[0][0]=1,a[1][0]=1,b[0]=1,b[1]=1; int len=1; for(int i=2;i<maxn;i++){
2015-01-16 21:31:46 298
转载 Catalan(卡特兰数)
一.什么是Catalan数说到Catalan数,就不得不提及Catalan序列,Catalan序列是一个整数序列,其通项公式是我们从中取出的就叫做第nCatalan数,前几个Catalan数是:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670,
2015-01-16 21:19:03 635
原创 HDU 1042 -- N! (Java)
import java.util.*;import java.math.*;public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNext()){ int a=in.nextInt(); BigInteg
2015-01-16 20:46:53 335
原创 HDU 1002 -- A+B problemII (Java)
import java.math.*;//BigIntegerimport java.util.*;//Scannerpublic class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int t=in.nextInt(); for(int i=1;
2015-01-16 20:44:12 627
原创 HDU 3342 -- Legal or Not(拓扑排序)
题目大意: 给出一些人的名次关系,问存不存在冲突的情况。思路分析: 判断图是否有回环,直接拓扑就行,模板题。代码实现:#include#include#includeusing namespace std;int top,degree[110];queueq;struct Edge{ int v; Edge *next;}*head[110],e[1000
2015-01-14 15:26:06 370
原创 HDU 1285 -- 确定比赛名次 (拓扑排序)
题目大意:有N个队伍比赛,给出M行输赢关系,要求输出一个排名,符合条件的排名可能不是唯一的,此时要求输出时编号小的队伍在前;输入数据保证是正确的,即输入数据确保一定能有一个符合要求的排名。思路分析:利用小顶堆,直接进行拓扑排序就行。代码实现:邻接表:#include#include#include#includeusing namespace std;int top,cn
2015-01-14 15:09:25 414
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人