杭电专题

杭电 2044 一只小蜜蜂...

http://acm.hdu.edu.cn/showproblem.php?pid=2044 f[1]表示相差一时的路线数 #include<stdio.h>int main(){int n,a,b,i;__int64 f[50];scanf("%d",&n);f[1] = 1;f[2] = 2;for(i = 3;i < 50;i++)f[i] = f[i-1]+f[i-2]; wh

杭电ACM hdu 2110 Crisis of HDU 解题报告(母函数)

Problem Description 话说上回讲到HDU大战东洋小苟,结果自然是中方大胜,这一战也使得海东集团在全球同行业中的地位更加巩固。随着集团的发展,很多创业时期的元老逐步功成身退,先是8600移民海外,然后是linle夫妇退隐山林,逐渐的,最初众多的元老只剩下XHD夫妇和Wiskey三人了。 到了2020年,因为扩张过度加上老鼠数量逐年减少,公司的发展遇到了前所未有的危机,此时集团已经

杭电ACM hdu 2082 找单词 解题报告(母函数)

Problem Description 假设有x1个字母A, x2个字母B,..... x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,..... 字母Z的价值为26。那么,对于给定的字母,可以找到多少价值<=50的单词呢?单词的价值就是组成一个单词的所有字母的价值之和,比如,单词ACM的价值是1+3+14=18,单词HDU的价值是8+4+21=33。(组成的单词与排列顺序无关,比如

杭电ACM hdu 2079 选课时间 解题报告(母函数)

Problem Description 又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合。你来帮帮他吧。(xhd认为一样学分的课没区别)   Input 输入数据的第一行是一个数据T,表示有T组数据。 每组数据的第一行是两个整数n(1 <= n <= 40),k(1 <= k <= 8)。 接着有k行,每行有两个整数a(1 <= a <= 8),b

杭电ACM 2018

http://acm.hdu.edu.cn/showproblem.php?pid=2018 首先得抽象出问题的数学公式! #include <iostream>using namespace std;int main(void){ //f1:活了1年的小牛//f2:活了2年的小牛//f3:活了3年的小牛//f :老牛int f1, f2, f3, f;int m;cin

杭电ACM 2015 偶数求和

偶数求和 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 26480 Accepted Submission(s): 11486 Problem Description 有一个长度为n(n<=100)的数列,该数列定义为从2开

选课时间 杭电ACM Java

选课时间(题目已修改,注意读题 Problem Description 又到了选课的时间了,xhd看着选课表发呆,为了想让下一学期好过点,他想知道学n个学分共有多少组合。你来帮帮他吧。(xhd认为一样学分的课没区别) Input 输入数据的第一行是一个数据T,表示有T组数据。 每组数据的第一行是两个整数n(1 <= n <= 40),k(1 <= k <=

杭电OJ 1233 还是畅通工程

杭电OJ 1233 还是畅通工程 题目链接 Problem Description某省调查乡村交通状况,得到的统计表中列出了任意两村庄间的距离。省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交通(但不一定有直接的公路相连,只要能间接通过公路可达即可),并要求铺设的公路总长度为最小。请计算最小的公路总长度。 Input测试输入包含若干测试用例。每个测试用例的第1行给出村庄数目N

并查集专题 杭电OJ1232 灵巧求并和路径压缩

并查集也叫不相交集合,可以描述把一个集合通过等价关系(满足自反性、对称性和传递性的关系)划分为若干个等价类这一过程。并查集只有两个操作:find 和 union。find 返回一个元素所属的等价类,union 合并两个元素所在的等价类。 本文以杭电OJ1232题为例,说明并查集的实现和两种优化(按秩合并和路径压缩)(题目链接)。 竞赛向的板子 const int N=10010;int f

奋战杭电ACM(DAY12)1018

又是一道数学题,用对数求位数 Big Number #include <iostream>#include <cmath>using namespace std;int main(){int n,m;double sum,digit;while(cin >> n){while(n>=1){cin >> m;sum=0;for(int i=1; i<=m; i++){digit=lo

奋战杭电ACM(DAY11)1017

这题重点完全在格式……input、output的格式…… 输入N个方块,每个方块之间一个空行,输出N个方块,每个方块之间一个空行,每个方块之间相互独立。 A Mathematical Curiosity #include <iostream>using namespace std;int main(){int N,n,m,num,NUM,block;cin >> N;block=

奋战杭电ACM(DAY11)1016

DFS加回溯 具体见注释 Prime Ring Problem #include <iostream>using namespace std;int n,circle[20],p[20];bool visited[20];int prime[]={1,3,5,7,11,13,17,19,23,29,31,37};//建立素数表,避免每次判断,减少时耗void print(int

奋战杭电ACM(DAY9)1014

题目太考验人了,没耐心也看不懂啊!! 大神表示这题就是判断是否互质,证明如下: 令 f(x) = seed(x) + step ; 那么seed 的序列 就是 a=f(x) 的模MOD 加法群。 因为题中要求这个加法群的大小 | <a> | = MOD。 所以 a == 1 (mod MOD ). 即( seed(x) + STEP ) == 1 (mod MOD). 又因为seed(x) 必

奋战杭电ACM(DAY9)1011

开学了,用电脑时间越来越少,军校一大麻烦,班长还特别贱,心情极度不好。直接发题,尽量写注释。 Starship Troopers #include<iostream>using namespace std;const int MAXN=110;int N,M;struct Node{int number,p;//p:该结点的possible;number:该结点的bug数};Nod

奋战杭电ACM(DAY6)1010

纠结了两天的题,一开始自己想不出来,上网搜前辈的解题报告,没看懂…… 对算法掌握太少了,知道知识点是深度优先遍历(DFS)和剪枝(本题特殊在奇偶剪枝),于是花了一天的时间学习这两个知识点,到处翻书哇!!于是还是没做出来……但是又结合前辈的解题报告,这次能看懂了!! 然后自己做,失败2次……第三次解决了!!提交,一次AC!! 作对这道题成就感胜过昨天AC4到啊!! 总结一下,本题的思路还是很

奋战杭电ACM(DAY5)1012

好吧这又是一道水题……今天第四题……前面几题的算法都没接触过啊啊啊啊啊!!!疯了……军校神烦晚上不能看书,尼玛,明天白天好好看书思考后再写前几题。 以上。 u Calculate e #include <iostream>#include <iomanip>using namespace std;int plus(int a){if(a==0)return 1;else retu

奋战杭电ACM(DAY5)1009

又干了一题,今天感觉不错呀!再接再厉!晚上继续!! 不知不觉原来用到了昨天看的贪心算法~~~用了才知道这个算法就是贪心,看来还不熟练,继续加油练习!! FatMouse' Trade #include <iostream>#include <iomanip>using namespace std;int main(){int M,N,i,k;double javabean,tmp

奋战杭电ACM(DAY5)1008

被前两题虐身虐心后看到这题简直难以置信,怎么可以这么水!!一次AC不解释!!难道老师是故意放这么道水题来安慰我们受伤的小心灵?? Elevator #include <iostream>using namespace std;int main(){int N,i,time;while(cin >> N){if(N==0)break;else{int *q = new int[N+1

奋战杭电ACM(DAY5)1007

1006题昨天想了整整一天一夜也没有结果……所以跳过了……过会去问一下老师,网上大神的答案都看不懂啊啊啊啊!! 今天搞定了1007,暴力果然是没有好结果的,超时了…… 正好前天刚看了递归与分治法,用上了,AC~ 不过具体怎么计算算法复杂度还没搞懂,回去再琢磨琢磨!! Quoit Design #include <iostream>#include <iomanip>#inclu

hdu-1290-献给杭电五十周年校庆的礼物

#include<stdio.h> int main() { int n; while(scanf("%d",&n)!=EOF) printf("%d\n",(n*n*n+n*5)/6+1); return 0; }

杭电1257(最少拦截系统)dp方法

点击打开杭电1257 最长递增子序列长度直接模板(最长递增子序列) 代码实现: import java.util.Scanner;class P1257 {static int n;static int[] dp,a;public static void main(String[] args) {Scanner sc=new Scanner(System.in);while

杭电1423(Greatest Common Increasing Subsequence)

点击打开杭电1423 Problem Description This is a problem from ZOJ 2432.To make it easyer,you just need output the length of the subsequence. Input Each sequence is described with M - its lengt

杭电1513(Palindrome)

点击打开杭电1513 Problem Description A palindrome is a symmetrical string, that is, a string read identically from left to right as well as from right to left. You are to write a program which, given a

杭电 2563 统计问题

统计问题 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4004    Accepted Submission(s): 2341 Problem Description 在一无限大的二维平面中,我们做如下假设:

杭电 2561 第二小整数

第二小整数 Problem Description 求n个整数中倒数第二小的数。 每一个整数都独立看成一个数,比如,有三个数分别是1,1,3,那么,第二小的数就是1。 Input 输入包含多组测试数据。 输入的第一行是一个整数C,表示有C测试数据; 每组测试数据的第一行是一个整数n,表示本组测试数据有n个整数(2<=n<=10),接着一行是 n个整数

每日刷题——杭电2156.分数矩阵和杭电2024.C语言合法标识符

杭电2156.分数矩阵 原题链接:Problem - 2156 题目描述 Problem Description:我们定义如下矩阵: 1/1 1/2 1/3 1/2 1/1 1/2 1/3 1/2 1/1 矩阵对角线上的元素始终是1/1,对角线两边分数的分母逐个递增。请求出这个矩阵的总和。 Input:每行给定整数N (N<50000),表示矩阵为 N*N.当N为0时,输入结束。 Out