杭电专题

2024杭电8

1004.cats 的重力拼图 题意: 有一个n*m的矩阵,给出最开始拼图的位置。 可以有四个选择,设置重力的方向,就是拼图会向一个方向竖直掉落到最底。 问任意操作次数后拼图走过的方格数量最大值。 题解: 首先已经在边缘的拼图,只能沿着边走一圈,再判断最开始可以朝哪个方向移动是最大值。 代码: #include<bits/stdc++.h>using namespace s

2024杭电6

1001.造花(简单版) 题意: 菊花图:n-1个节点都连接同一节点的树。 给定一棵树,删掉一个节点和连向这个点的所有边,使剩下两个连通块都构成菊花图,问是否可以做到。 题解: 菊花图只有中心节点的度可以没有限制,其余节点的度都是1。 要删除一个节点,要求剩下两个连通块,那就只能删掉度为2的节点,剩下两个菊花图,菊花图最多一个度不是1的节点。 所以度不是1的节点数最多为5,如图。

杭电 1297 Children’s Queue .

http://acm.hdu.edu.cn/showproblem.php?pid=1297   计算F(n): 一:当最后一个是男孩M时候,前面n-1个随便排出来,只要符合规则就可以,即是F(n-1); 二:当最后一个是女孩F时候,第n-1个肯定是女孩F,这时候又有两种情况:         1)前面n-2个可以按n-2个的时候的规则来,完全可以,即是F(n-2);

2014.1.13 杭电习题 绝对值排序

绝对值排序 Problem Description(问题描述) 输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。 Input(输入) 输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。 Output(输出) 对于每个测试实例,输出排序后的结果,两个数之间用一个

2014.1.13 杭电习题 二维字符串中出现数量最多的字符串

Let the Balloon Rise Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 15   Accepted Submission(s) : 6 Font: Times New Roman | Verdana | Georgi

递推—杭电2044 一只小蜜蜂...

http://acm.hdu.edu.cn/showproblem.php?pid=2044 一只小蜜蜂... Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 35811    Accepted Submission(s): 1317

杭电1280 前m大的数(哈希表)

前m大的数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 9557    Accepted Submission(s): 3350 Problem Description 还记得Gardon给小希布置的那个作业么?(上次比赛的1

杭电1867 A + B for you again

Hot~ 2014暑期多校联合训练——正式启动报名~ 详见“杭电ACM”微博~ A + B for you againTime Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3811    Accepted Submission(s):

杭电2087 剪花布条

跟1711一样的kmp入门题目 #include<stdio.h> #include<string.h> char s[1111],t[1111]; int next[1111],len1,len2; void getnext() { int i=1,j=0; next[1]=0; while(i<len2) { if(j==0||t[i]==t[j])

杭电1060

不知道公式,修改了别人的代码,公式应该是a=n*lgn;然后10^(a的小数)取整型; #include #include int main() {     __int64 k,b,i,d;     double a,m,n,c;     scanf("%I64d",&k);     while(k--)     {         scanf("%lf",&n);         a=n*

【ACM】----杭电oj 1176

免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 28063    Accepted Submission(s): 9565 Problem Description 都说天上不会掉馅饼,但有一天gameboy正

【ACM】----杭电oj 2153

仙人球的残影 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5734    Accepted Submission(s): 2617 Problem Description 在美丽的HDU,有一名大三的同学,他的速度

【ACM】----杭电OJ 2096

小明的A+B 点击查看题目 小明A+B Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 28870    Accepted Submission(s): 13740 Problem Description

杭电1082Matrix Chain Multiplication

杭电1082Matrix Chain Multiplication        这道题看oj上评论说很水,可是自己居然想了几个小时,看来对栈的的操作还是不够清晰熟练啊。总体思路就是把先把括号里面的表达式,然后再依次向外消掉括号。我的思路就是把(AB(AA(A)))(A(AB)),先运算成(#(#(#)))(#(#)),然后把这个压入数组中,然后遇到‘)’我们就对数组中的倒数第二个和倒数第

杭电1129 Do the Untwist

杭电1129 Do the Untwist       杭电1129 题目很长,读了下来,其实意思就是把输入的字符串按规则转化为数组c中的元素,让你根据公式c[i] = (p[k*i mod n] - i) mod 28得到p中元素的值,我们可以把这个公式化简一下,就可得到对应的公式 c[i]=(p[k*i mod n])mod28-i mod28;所以p[k*i mod n]=(c[i]

杭电1145 so you want to be a 2n-aire?

杭电1145 这道题的意思是给你一元钱,让你连续回答n个问题,每回答对一个问题,钱数翻倍,回答错了,就什么也没有了,已知你回答对没到题的概率在t到1之间均匀分布。求你能获得的最大的钱数期望。       刚看到这道题不明白什么意思,到底求什么期望,后来看了几篇大牛的博客才懂,首先假设有n道题,你已经回答了i道题了,下面我们要确定的是回答第i+1道题是回答还是不回答,那么该如何确定呢?

杭电1276士兵队列的训练问题

杭电1276士兵队列的训练问题         本来这题想用直接的模拟法去解答,但一看数据为5000,也还是可以,可是模拟是用数组的话无法直接去掉被删除的元素,用链表可以完全模拟,但是链表操作比较麻烦,想尽量避免链表操作的使用。所以本题就想到了用两个链表来回操作来进行模拟。        首先定义两个数组s1,s2。s1先存储所有士兵的编号,然后由于依次报到2的士兵都会被出列,数组下标与编号

杭电1018题

本以为可以用 #include<iostream> #include<string> using namespace std; #define max 10000000 int f1[max]; int main() { int n, a; cin >> n;//测试 个数 while (n--) { cin >> a; memset(f1, 0,

杭电1032题

3n+1问题 Problem Description Problems in Computer Science are often classified as belonging to a certain class of problems (e.g., NP, Unsolvable, Recursive). In this problem you will be analyzing a p

杭电 acm 1098

多校综合排名前25名的学校请发送邮件到HDUACM@QQ.COM,告知转账信息(支付宝或者卡号) Ignatius's puzzle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 6372    Accepted S

杭电 acm 2009

求数列的和 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 42988    Accepted Submission(s): 26574 Problem Description 数列的定义如

HDU (杭电) 计算机学院大学生程序设计竞赛(2015’11)

比赛链接:click here~~ 搬砖 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) Total Submission(s): 0    Accepted Submission(s): 0 Problem Description 小明现在是人见人爱

杭电 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