摘要:自用 基础题: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、1
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874flody 居然没考虑重复边和 从起点和终点是一个点时距离是0的情况 WA了好几次有重复边的时候最后的距离是最小距离 邻接矩阵初始化的时候 i和j如果相等 map[i][j]=0又被水题折磨了一个多小时 浪费时间了 什么时候才能不这么二呢??#include<iostream>#include<cstdio>#define INF 1<<29#define SIZE 300using namespace std;int map[SIZE][SIZE];voi
阅读全文
摘要:各种水 题目是简单使用动态规划 使用已有的动态规划进行推导先上代码123571 243571 2 3 4 657最后注意输出 即可/* Name: Copyright: Author:yujiaao Date: Description:hdu*/#include<iostream>#include<cstdio>using namespace std;int list[5845];int f_min(int a,int b,int c,int d){ int m=a<b?a:b; int n=c<d?c:d; return n<m?n:m;}int m
阅读全文
摘要:几个月都没A题目了 记得上次就在这个题目卡掉了 今天AC这个题 算是个继续吧题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1003考虑情况:1.当第一个数是负数时: 考虑最大和全是负数的情况 取得最大负数并更新sum核心来比较sum+list[i]和max的大小并更新max当sum<0时令sum=0其实就是比较list和max的大小/* Name:hdu1003总算AC了 Copyright: Author:yujiaao Date: Description:hdu*/#include<iostream>#include<
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1061本来是个水题 却被数组下标为0折磨的痛苦万分 中间出了很多差错 花了好长时间看其他解题报告 哎 水啊水啊水具体思路:就求末尾 和其他位置无关 所以可以对10取余数 来得到乘法的数然后通过计算看出 四个数是一个循环:1 1 1 112 4 8 6 23 9 7 1 34 6 4 6 45 5 5 5 56 6 6 6 67 9 3 1 78 4 2 6 89 1 9 1 9当然 这是找到的顺序 要是用数组存得话得将数向后移动一位(数组下标为0太坑爹了)得到的数组如下0 1 2 3//数组下标1
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022 其实是一道上数据结构课讲过的例题 只不过当时讲的是怎么用手算 一道水题又花了好长时间 其实就是栈的模拟 相当于数据结构的练习题 利用栈的先进后出的顺序 先将数进栈 等到合适的时候不停地出栈 在进栈 最后看看栈是否为空 如果能全部出栈栈为空输出路径 否则无法实现 记录路径 我用了一个队列 其实可以使用数组 不过想到先进先出首先想到了队列queue使用各种数据结构的时候一定要注意多次使用时要清空结构 还有就是要考虑空的情况 STL 有点使人变懒了 希望以后自己能少用吧粘代码: 1 #includ
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1406好久不写解题报告了 最近有点颓废 基本不做题 哎 这个题目就是注意所给的两个数的顺序不一定是从小到大的不说了 粘代码View Code 1 //============================================================================ 2 // Name : hdu1406.cpp 3 // Author : 4 // Version : 5 // Copyright : Your copyright ...
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2049写这篇解题报告时 我真的很气愤 对自己又一次犯下低级错误改了两个小时 int型的数据居然用%I64d输出 错了还找不出来 然后就各种试C/C++的输出 对自己都无语了 也是对自己最近没A题的教训吧这个题使我感受到了数学对于ACM的重要性 可恶上学期高数居然挂了 太颓废了排列组合知识 对于n个数取m个数(不及顺序)的取法为 n!/( (n-m)!*m!). 当时打的时候没考虑清楚 没想到直接打地推公式 就是用一个数组存储阶乘(要是用递归会超时)然后用乘除计算关于错排:给定m个数进行全错排 只有两
阅读全文
摘要:题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2039绝对水题 但三条边没数据类型 就以为是整型 然后就output limit exceeded为什么不是WA 为什么 求解释数据类型不对会出MlE 这个以前真的不知道思路:可以每两个数比的 但是我做的时候 把两个较小的加到一起和最大的比较即可。数据类型 数据类型 数据类型用到定理:三角形两边之和大于第三边 绝对水题 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int main() 5 {
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1015题目说是从一个字符串中找到5个数 v w x y z 给定target (子母中 A=1 ,B=2,C=3。。。Z=26)v - w^2 + x^3 - y^4 + z^5 = target 题目中有一个要求:找到的vwxyz字符串按照字典序从大到小输出 又没看题 使用枚举的方法 5层循环 先对字符串从大到小排序 这样保证找到的第一个就是字典序最大的没有优化 5层循环直接过 简单的题因为没看懂题改了半天TT。。。哎 英语和理解能力急需加强。。。题目不难代码如下: 1 #include<i
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2031其实这个题可以直接用stl中的栈的 不过我试了一下用数组模拟栈 发现自己的问题题目很简单 就是每次不停地求商 把余数放入栈中 最后一口气弹出就行了※写模拟的时候出现问题 p=st;表示p的指针指向st[0] 而不是自己想的栈底 所以要先p++后进数 相当于st[0]不用※代码如下:#include<iostream>#include<cstdio>using namespace std;char a[16]={'0','1','2
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2025说的不严谨 题目描述不清楚 测试数据根本没有大写的情况 直接全小写就过了 算上大写却没过 就是搜一遍找到最大字母 再搜一遍找到相同的多输出(max)AC了的代码#include<iostream>#include<cstdio>#include<cstring>#include<iostream>using namespace std;char a[105];int main(){ int i,j,k; char maxn; while(scan
阅读全文
摘要:题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2024这一次让我充分体会到了基础知识的重要性 c语言的合法标识符是有数字字母和下划线组成的 并以字母和下划线开头的 我居然以为下划线不能作为标识符的开头,并且把字符型的数据直接赋值为1(没加引号 表示ASCII 的 1 与 '1' 不相同)还有 数字的范围居然写成了1到9 错误太低级了(数字的范围是0到9) 水啊水啊水ps:有些解题报告说这道题是个麻烦的题 需要判断是不是关键字 看来测试数据额有点水 虽然AC了 不过做的时候没想到毕竟过了 犯点懒 不改了 1 #include<
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1846不太难一个题 并且是中文题 其实是 只要拿到r*(m+1)棋子的人必胜 所以 只需n对m+1取余数 余数为0时后手必胜 否则先手必胜其实是从后向前考虑 要那第n个棋子 就要那 n-(m+1) 才会必胜,然后逐个向前推进;※被输入给坑了 题目只有一个ncase 不知道为什么使用while(cin>>ncase!=EOF)WA 以前只有一组测试数据的情况下没遇到过 以后认真读题吧 ※※ 1 #include<iostream> 2 #include<cstdio>
阅读全文
摘要:水得要命 其实用循环求和一定能过 用公式求虽然n是int范围 但n*(n+1) 就不是了 或者根据奇偶先除以二 或者直接用long long(g++ 中的)ps:g++中long和int的范围一样 都是32位 自我批评一下 犯这种低级错误实在太二了 输出时打印两个换行 这个不用解释吧 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int main() 5 { 6 long long int n; 7 while(cin>>n) 8 { 9 cout<<n*(n+1
阅读全文
摘要:题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2022极其水的题:说在一个m*n的二维数组中找到一个绝对值最大的数定义max=0 每次输入一个数都和max的绝对值进行比较ps:二维数组居然开成一维数组了 错了半天才查出来。。。下次注意 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int main() 5 { 6 int m,n,i,j,k,max=0,x,y; 7 int b[100][100]; 8 while( scanf("
阅读全文
摘要:题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=2018递推: 多算几个项 就能找到规律f[i]=f[i-1]+f[i-3] 即总牛数:前一年的牛数+前三年产生的母牛数View Code 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 int main() 5 { 6 int sum,n; 7 int a[60],i=0; 8 a[1]=1,a[2]=2,a[3]=3,a[4]=4; 9 for(i=5;i<57;i++)10 a[i]=
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1031考察sort的用法 将 k排 每排m个数 上下加和 得到一排 m个数 然后按照得分从大到小的顺序排序 得分相同 将原来编号小的放在前面 取得前k个再次按照编号由小到大进行排序输出排序后的结果 使用结构体保存排序之前的编号 在自己定义只对于数据的排序函数用于sort最开始没理解题意 以为就是取第一次排好序的前几个没进行第二次排序 并且对于得分相同没做处理直接忽略 测试数据一值不过代码如下: 1 #include<iostream> 2 #include<cstdio> 3 #inc
阅读全文
摘要:http://poj.org/problem?id=1657题目不难 主要就是 考虑每种棋子最短的走法 在使用变量时 里外层使用了同一个变量 i 还有是scnaf()后面没加getchar()WA了几次 下次一定要细心dx==dy 说明在一条斜线上棋盘上所有的斜线倾斜角都是45王min(dx,dy)+abs(x-y)相当于梯形 走一个斜线再走直线代码如下: 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4 template<class T> 5 T abs(T a) 6 { 7
阅读全文