- 博客(31)
- 资源 (1)
- 收藏
- 关注
原创 hdu 2025 查找最大的元素
#include #include int main() { char max,str[105]; int l,i; while(~scanf("%s",str)) { l=strlen(str); max='a'; for(i=0;i<l;i++) { if(str[i]>max) { max=str[i]; } } for(i=0;i<
2015-02-20 14:56:18 308
原创 hdu 4864 Task 任务
#include #include #include using namespace std; struct node { int x, y; }; node ms[100005],level[100005]; int cmp(node a, node b) { if(a.x!=b.x) return a.x>b.x; return a.y>b.y; } int main() {
2015-01-05 19:05:34 303
原创 hdu 2124 Repair the Wall(修墙)
贪心的水题。直接排序从大到小,然后相加看是否能够与给定的长度相等,如果加完了的话还不等就输出impossible #include #include #include using namespace std; int cmp(const void *a, const void *b) { return *((int *)b) - *((int *)a); } int main() { in
2014-12-13 21:17:33 452
原创 hdu 1785 you are all excellent(你们全都是最好的)
题目是中文的题意就不说了。思路是根据给定的点与x正半轴的夹角的大小即求点的横坐标与纵坐标的比值的大小。 根据他们的比值来进行排序。我用的冒泡排序的算法,因为这个是根据数组的下标来进行排序的。正好能够在对比值的排序 的同时来对点的横坐标和纵坐标进行排序。在说一下这题的格式要注意,我就是因为这个错了两次。 #include int main() { int n,i,j; double a[
2014-12-11 21:17:29 691
原创 hdu 1257 最少拦截系统
这是一道中文的题目,题意我就不多说了。看其他人的解题报告这题有好多种解题方法,我先介绍我自己的思路。 在给定的一连串数据中如果前一项比后一项小的话就加一。 #include int main() { int n,i,j,a,ans,t[100006]; while(~scanf("%d",&n)) { ans=0; for(i=1;i<=
2014-12-11 20:18:41 249
原创 hdu 1009 FatMouse' Trade(胖老鼠的交易)
这是一道贪心算法的题目,主要的思想就是以最少的钱买最多的东西,这样就需要对给定的数据进行排序,每次的进行比较。 #include #include #include using namespace std; struct trate { double food ,javabin; double t; }w[1005]; bool cmp(trate a, trate b) { if(a.t
2014-12-08 21:08:24 1198
原创 hdu 2037 今年暑假不AC
题目意思就不多说了。这是贪心算法的题目,求最优解我们很容易会想到贪心算法,这道题目是根据结束时间排序来慢慢找到最优解 #include #include #include using namespace std; struct program { int b, e; }arr[110]; bool cmp(program a, program b) { return a.e<b.e||(a.
2014-12-07 19:16:56 238
原创 hdu 1875 畅通工程再续
是一道最小生成树的题目,套用prim算法的模板就可以了 #include #include #include #define arr 105 #define inf 200000000.0 double g[arr][arr],dis[arr]; struct node { int x,y; }a[arr]; double Dis(int i,int j) { double tm
2014-12-06 10:23:45 276
原创 poj 1258 Agri-Net
这是一道最小生成树的问题。题目输入的二维数组就是用prim算法展开的邻接表所以我选择了prim算法。 #include #define MAX 10000000 #define maxn 105 int map[maxn][maxn]; int prim(int n) { int i,j,k; int low[maxn]; int pos[maxn]; int min,sum=0;
2014-12-01 20:18:37 245
原创 hdu 1863 畅通工程
题意很好理解。我用了最小生成树,prim算法。 #include #include int map[105][105]; int prim(int n) { int i,j,min,sum=0; int pos, vis[105],d[105]; memset(vis,0,sizeof(vis)); for(i=1;i<=n;i++) d[i]=map[1][i]; vis[1]=
2014-11-29 16:55:59 242
原创 hdu 1162 Eddy's picture
这是一道=最小生成树的问题,我用的是prim算法解决的 #include #include #include #define maxn 105 struct point { double x,y; }p[maxn]; double cost[maxn][maxn]; double dis(point a, point b) { return sqrt((a.x-b.x)*(a.x-b.x)
2014-11-27 20:37:40 261
转载 各种稳定的排序算法
回到主题,现在分析一下常见的排序算法的稳定性,每个都给出简单的理由。 (1)冒泡排序 冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个 元素 比较,交换也发生在这两个元素之间。所以,如果两个元素相等,我想你是不会再无 聊地 把他们俩交换一下的;如果两个相等的元素没有相邻,那么即使通过前面的两两交换 把两 个相邻起来,这时候也不
2014-11-25 20:02:42 2279
原创 hdu 1058 Humble Numbers(卑微的数字)
突然发现自己被这道题目给羞辱了。。。。 #include #include int num[5845]; int min(int a, int b , int c, int d) { int x = a<b?a:b; int y = c<d?c:d; return x<y?x:y; } void find() { num[1]=1; int i; int x,y,m,n; x=y=
2014-11-25 19:22:50 436
原创 poj 2236 Wireless Network
提题意是n台损坏的电脑,现要将其逐台修复,且使其相互恢复通信功能。若两台电脑能相互通信, 则有两种情况,一是他们之间的距离小于d,二是他们可以借助都可到达的第三台已修复的电脑。 给出所有电脑的坐标位置,对其进行两种可能的操作,O x表示修复第x台,S x y表示判断x y之间能否通信, 若能输出SUCCESS,否则输出FALL。
2014-11-15 14:19:36 336
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人