POJ 3176 Cow Bowling

链接: http://poj.org/problem?id=3176

这道题可以算是dp入门吧。可以用一个二维数组从下向上来搜索从而得到最大值。

优化之后可以直接用一维数组来存。(PS 用一维的时候要好好想想具体应该怎么存,还是有技巧的)

  1. #include<iostream>
  2. #include<cstring>
  3. #include<cmath>
  4. #include<cstdio>
  5. using namespace std;
  6. int dp[355]={0};
  7. int main ()
  8. {
  9. int n,i,j,s=0,a;
  10. cin>>n;
  11. for (i=1; i<=n; i++)
  12. for (j=i; j>=1; j--)
  13. {
  14. cin>>a;
  15. dp[j]=(dp[j]>dp[j-1]?dp[j]:dp[j-1])+a;
  16. //用一维数组更新的时候必须时必须保证更新后的元素在之后同一层dp中不再用到。
  17. if (s<dp[j]) s=dp[j];
  18. }
  19. cout<<s<<endl;
  20. return 0;
  21. }
  22. /*
  23. int map[355][355];
  24. int main ()
  25. {
  26. int n,i,j;
  27. cin>>n;
  28. for (i=0; i<n; i++)
  29. for (j=0; j<=i; j++)
  30. cin>>map[i][j];
  31. for (i=n-2; i>=0; i--)
  32. for (j=0; j<=i; j++)
  33. map[i][j]+=(map[i+1][j]>map[i+1][j+1]?map[i+1][j]:map[i+1][j+1]);
  34. //这是开二维数组,从下向上dp
  35. cout<<map[0][0]<<endl;
  36. return 0;
  37. }
  38. */

POJ 1674 Sorting by Swapping

链接: http://poj.org/problem?id=1674

题意是有一串数字,问你最少交换多少次可以得到从小到大的排序

我们知道最少交换次数可以用选择排序来求得。但是这道题如果用选择排序的话,必然超时。

其实这道题还是暗藏玄机的。因为n个数正好是1到n。所以如果a[i]==i 就表示该位置已经排好了

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<cmath>
  5. #include<string>
  6. #define p 3.1415927
  7. using namespace std;
  8. int a[10010]= {0};
  9. int main ()
  10. {
  11. int t,n,i,j;
  12. cin>>t;
  13. while(t--)
  14. {
  15. int s=0;
  16. cin>>n;
  17. for (i=0; i<n; i++)
  18. scanf("%d",a+i);
  19. for (i=0; i<n-1; i++)
  20. if (a[i]!=i+1)//这道题如果用选择排序的话。10000^2。必然超时
  21. //这道题n个数是从1到n。所以加这个判断会适当减时
  22. {
  23. for (j=i+1; j<n; j++)
  24. if (a[j]==i+1)
  25. {
  26. int temp=a[j];
  27. a[j]=a[i];
  28. a[i]=temp;
  29. s++;
  30. }
  31. }
  32. cout<<s<<endl;
  33. }
  34. return 0;
  35. }

POJ 2346 Lucky Tickets

链接: http://poj.org/problem?id=2346

这道题就是一个n位数,左半边相加和有半边相加相等为一个组合,问有多少组合。n位数可以有前导零

由于n最大为10.。想都没想直接打表了。。

不过看discuss里面说这道题可以dp。好神。不过想想也是

这道题还应该再思考思考

  1. //这道题有待提高 用DP来做 以后试试
  2. #include<iostream>
  3. #include<cstdio>
  4. #include<cstring>
  5. using namespace std;
  6. int main ()
  7. {
  8. int a[6]={0,10,670,55252,4816030,432457640};
  9. int n;
  10. cin>>n;
  11. cout<<a[n/2]<<endl;
  12. }

这几天做了挺多水题的。为了增快阅读速度吧。还有就是要加快敲代码速度。

这里面几道题目都是相对有点意思的。

POJ 水题若干的更多相关文章

  1. POJ 水题(刷题)进阶

    转载请注明出处:優YoU http://blog.csdn.net/lyy289065406/article/details/6642573 部分解题报告添加新内容,除了原有的"大致题意&q ...

  2. 【POJ水题完成表】

    题目 完成情况 poj1000:A+B problem 完成 poj1002:电话上按键对应着数字.现在给n个电话,求排序.相同的归一类 完成 poj1003:求最小的n让1+1/2+1/3+...+ ...

  3. poj 水题系列

    题目:http://poj.org/problem?id=3006 筛选法求素数 #include <iostream> #include<cstdio> #include&l ...

  4. POJ水题 1298

    #include "stdafx.h" #include <iostream> #include <string> using namespace std; ...

  5. POJ 1488 Tex Quotes --- 水题

    POJ 1488 题目大意:给定一篇文章,将它的左引号转成 ``(1的左边),右引号转成 ''(两个 ' ) 解题思路:水题,设置一个bool变量标记是左引号还是右引号即可 /* POJ 1488 T ...

  6. poj 3080 Blue Jeans(水题 暴搜)

    题目:http://poj.org/problem?id=3080 水题,暴搜 #include <iostream> #include<cstdio> #include< ...

  7. POJ 3984 - 迷宫问题 - [BFS水题]

    题目链接:http://poj.org/problem?id=3984 Description 定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, ...

  8. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  9. [POJ 1000] A+B Problem 经典水题 C++解题报告 JAVA解题报告

        A+B Problem Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 311263   Accepted: 1713 ...

随机推荐

  1. WCF-Configuration

    Host-Configuration <?xml version="1.0"?> <configuration> <configSections> ...

  2. NGUI基础之button(按钮)

    1,button的创建:2,button组件的基本属性:3,button的事件监听 原位地址:http://blog.csdn.net/dingkun520wy/article/details/504 ...

  3. 简单制作mib表

    今天放假后第一天上班,将假前自学制作mib表的东西说一下. 在这里呢,我以世界-中国-上海-闵行这种包含关系介绍,感觉更容易理解. MIB file的开始和结束 所有的MIB file的都以DEFIN ...

  4. [转载]点评阿里云、盛大云等国内IaaS产业

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:刘黎明      原文地址:http://www.chinacloud.org ...

  5. Machine Learning Done Wrong

    Machine Learning Done Wrong Statistical modeling is a lot like engineering. In engineering, there ar ...

  6. 趣味Python入门(一):初识Python

    [编者按]本文作者是 Abhishek Jaiswal ,擅长 .NET.C#.Python 等多种语言的技术控.本文中,作者通过活泼有趣的口吻向大家介绍了 Python 语言的基础知识,后期多学习历 ...

  7. StringBuffer用法

    public class StringBufferTest { public static void main(String[] args) { StringBuffer sb=new StringB ...

  8. ZOJ3765 Lights Splay树

    非常裸的一棵Splay树,需要询问的是区间gcd,但是区间上每个数分成了两种状态,做的时候分别存在val[2]的数组里就好.区间gcd的时候基本上不支持区间的操作了吧..不然你一个区间里加一个数gcd ...

  9. java基础知识回顾之---java String final类之intern方法

    public class StringObjectDemo { /** * @param args */ public static void main(String[] args) { String ...

  10. 如何处理JSON中的特殊字符

    JSON 是适用于 Ajax 应用程序的一种有效格式,原因是它使 JavaScript 对象和字符串值之间得以快速转换.由于 Ajax 应用程序非常适合将纯文本发送给服务器端程序并对应地接收纯文本,相 ...