1001 数组中和等于K的数对
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对。例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0,8),(2,6),(3,5)。
 
Input
  1. 1行:用空格隔开的2个数,K NNA数组的长度。(2 <= N <= 50000,-10^9 <= K <= 10^9)
  2. 2 - N + 1行:A数组的N个元素。(-10^9 <= A[i] <= 10^9) 
Output
  1. 1 - M行:每行2个数,要求较小的数在前面,并且这M个数对按照较小的数升序排列。
  2. 如果不存在任何一组解则输出:No Solution
Input示例
  1. 8 9
  2. -1
  3. 6
  4. 5
  5. 3
  6. 4
  7. 2
  8. 9
  9. 0
  10. 8
Output示例
  1. -1 9
  2. 0 8
  3. 2 6
  4. 3 5
    排序后线扫差不多吧,简单贪心。
  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<cmath>
  4. #include<iostream>
  5. #include<cstring>
  6. #include<map>
  7. using namespace std;
  8.  
  9. const int NN=;
  10.  
  11. int n,k;
  12. int a[NN];
  13. bool boo=;
  14. map<int,int>p;
  15.  
  16. int main()
  17. {
  18. scanf("%d%d",&k,&n);
  19. for (int i=;i<=n;i++)
  20. {
  21. scanf("%d",&a[i]);
  22. p[a[i]]++;
  23. }
  24. sort(a+,a+n+);
  25. for (int i=n;i>=;i--)
  26. {
  27. int x=k-a[i];
  28. if (x>=a[i]) break;
  29. if (p[x]) {printf("%d %d\n",x,a[i]);boo=;}
  30. }
  31. if (!boo) printf("No Solution\n");
  32. }
 
                1002 数塔取数问题
一个高度为N的由正整数组成的三角形,从上走到下,求经过的数字和的最大值。
每次只能走到下一层相邻的数上,例如从第3层的6向下走,只能走到第4层的2或9上。
 
   5
  8 4
 3 6 9
7 2 9 5
 
例子中的最优方案是:5 + 8 + 6 + 9 = 28
 
Input
  1. 1行:NN为数塔的高度。(2 <= N <= 500)
  2. 2 - N + 1行:每行包括1层数塔的数字,第21个数,第32个数......第k+1k个数。数与数之间用空格分隔(0 <= A[i] <= 10^5) 
Output
  1. 输出最大值
Input示例
  1. 4
  2. 5
  3. 8 4
  4. 3 6 9
  5. 7 2 9 5
Output示例
  1. 28
    一道dp的水题吧。
  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<iostream>
  4. #include<cmath>
  5. #include<cstring>
  6. using namespace std;
  7.  
  8. const int NN=,INF=1e8+;;
  9.  
  10. int n;
  11. int f[NN][NN];
  12.  
  13. int main()
  14. {
  15. scanf("%d",&n);
  16. for (int i=;i<=n;i++)
  17. for (int j=;j<=i;j++)
  18. scanf("%d",&f[i][j]);
  19. for (int i=;i<=n;i++)
  20. for (int j=;j<=i;j++)
  21. f[i][j]=max(f[i][j]+f[i-][j-],f[i][j]+f[i-][j]);
  22. int ans=-INF;
  23. for (int i=;i<=n;i++)
  24. ans=max(ans,f[n][i]);
  25. printf("%d\n",ans);
  26. }
1003 阶乘后面0的数量
n的阶乘后面有多少个0?

6的阶乘 = 1*2*3*4*5*6 = 720,720后面有1个0。

 
Input
  1. 一个数N(1 <= N <= 10^9)
Output
  1. 输出0的数量
Input示例
  1. 5
Output示例
  1. 1
  1. 发现2一定比5多,所以只要找5的倍数即可除一除就好了。
  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<iostream>
  4. #include<cmath>
  5. #include<cstring>
  6. #include<map>
  7. using namespace std;
  8.  
  9. int n,ans=;
  10.  
  11. int main()
  12. {
  13. scanf("%d",&n);
  14. for (long long x=;x<=n;x*=)
  15. ans+=(n/x);
  16. printf("%d\n",ans);
  17. }
  1.  
1004 n^n的末位数字
给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。

 
Input
  1. 一个数N1 <= N <= 10^9
Output
  1. 输出N^N的末位数字
Input示例
  1. 13
Output示例
  1. 3
  1. 水题吧,最后一位乘一乘,取模即可。
  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<cmath>
  4. #include<iostream>
  5. #include<cstring>
  6. using namespace std;
  7.  
  8. int n;
  9. bool boo[]={};
  10. int flag[]={};
  11.  
  12. int main()
  13. {
  14. scanf("%d",&n);
  15. int y=n%;
  16. int x=n%,ci=;
  17. while()
  18. {
  19. if (boo[x]) break;
  20. ci++,boo[x]=,flag[x]=ci;
  21. x=x*y%;
  22. }
  23. x=n%ci;
  24. if (x==) x=ci;
  25. for (int i=;i<=;i++)
  26. if (flag[i]==x)
  27. {
  28. printf("%d\n",i);
  29. break;
  30. }
  31. }
  1.                   1009 数字1的数量
给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。

 
例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。
Input
  1. 输入N(1 <= N <= 10^9)
Output
  1. 输出包含1的个数
Input示例
  1. 12
Output示例
  1. 5
  1. 这道题可以计算每个位置出现1的次数,一个简单的数学归纳+计算,具体看代码。
  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<iostream>
  4. #include<cmath>
  5. #include<cstring>
  6. using namespace std;
  7.  
  8. int n;
  9.  
  10. int main()
  11. {
  12. scanf("%d",&n);
  13. int ans=,tail=,mi=;
  14. while (n!=)
  15. {
  16. int x=n%;
  17. n/=;
  18. ans+=n*mi;
  19. if (x==) ans+=tail+;
  20. if (x>) ans+=mi;
  21. tail=tail+x*mi,mi*=;
  22. }
  23. printf("%d",ans);
  24. }
  1. 应该还是可以理解的,比较快。
  1.  

1001 数组中和等于K的数对 1002 数塔取数问题 1003 阶乘后面0的数量 1004 n^n的末位数字 1009 数字1的数量的更多相关文章

  1. 1001 数组中和等于K的数对

    1001 数组中和等于K的数对 基准时间限制:1 秒 空间限制:131072 KB 给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A ...

  2. 51nod 1001 数组中和等于K的数对【二分查找/排序】

    1001 数组中和等于K的数对 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组 ...

  3. 51Nod 1001 数组中和等于K的数对 And 1015 水仙花数

    1001 数组中和等于K的数对 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K ...

  4. 51Nod 1001 数组中和等于K的数对 Label:Water

    给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0 ...

  5. 51Nod 1001 数组中和等于K的数对 Set

    给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A:{-1,6,5,3,4,2,9,0,8},所有和等于8的数对包括(-1,9),(0 ...

  6. 1001 数组中和等于K的数对 1090 3个数和为0

    二分查找.对数组每个V[i],在其中查找K-V[i],查找完成后修改v[i]避免重复输出 #include<iostream> #include<algorithm> #inc ...

  7. 51Nod 1001 数组中和等于K的数对

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1001一开始的想法是排序后二分搜索,发现会进行非常多不必要的遍历,十分耗时 ...

  8. 51Nod 1001数组中和等于K的数对

    Input示例 8 9 -1 6 5 3 4 2 9 0 8 Output示例 -1 9 0 8 2 6 3 5 first try: #include "bits/stdc++.h&quo ...

  9. 51Nod - 1001:数组中和等于K的数对

    基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A: ...

随机推荐

  1. linux命令详解(一)netstat

    今天在使用linux的时候,要查看端口号,但是不知道要使用哪一个命令所以就学习了一下,原来是使用netstat,接下来给大家一起来学习. 一.netstat介绍 1.1.简介 Netstat 命令用于 ...

  2. 利用 FormData 对象和 Spring MVC 配合可以实现Ajax文件上载功能

    Ajax文件上载 利用 FormData 对象和 Spring MVC 配合可以实现Ajax文件上载功能: 步骤 导入组件并准备静态脚本 <dependency> <groupId& ...

  3. [ASP.NET MVC] Razor 布局

    整体视图模板 View模板会先找到对应的controller文件,再找此文件下的Shared文件夹. 比如项目最外层的View/Shared 目录下有一个_Layout.cshtml模板页,有这样代码 ...

  4. JS中event.keyCode用法及keyCode对…

    js中event.keyCode用法及keyCode对照表 标签: javascriptJavaScriptJavascriptjavaScript 2012-12-11 15:11 HTML Jav ...

  5. 看懂c/c++ 函数、指针、数组定义

    读懂 函数 + 指针 + 数组 c语言运算符机器优先级,看这里 结合运算符优先级,我们试着读懂函数和指针 优先级简单看 表达式提升():一级优先 函数():二级优先 数组[]:二级优先 指针定义*:三 ...

  6. 201521123015 《Java程序设计》第七周学习总结

    1. 本周学习总结 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 源代码如下: public boolean contains(Object ...

  7. Java-错误处理机制学习(一)异常处理

    注意:本文介绍Java中的异常处理理论知识及相关语法结构,对于实际应用来说是万万不够的.关于如何高效地使用异常,请查看Java-高效地使用Exception-实践. 异常处理的思想是,当应用程序处于异 ...

  8. 201521123066 《Java程序设计》第十周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 有关异常的知识点: 一段代码可能生成多种类型的异常,子类异常必须放在父类异常前面,否则会出现编译错误: 可以 ...

  9. Window10中利用Windbg与虚拟机(window7)中调试驱动建立方法

    想起自己的windbg配置就转载:eqera的windows内核调试配置,真的是获益良多希望他不会介意我转载他的博客,帮了我很多,记录下来给我也给大家, 其中我主要看的是VMWare的pipe建立,而 ...

  10. python webdriver 环境搭建详解

    学了一个月用java编写selenium driver 测试脚本,也将公司做的系统基本可用的模块做了一次自动化,虽然写的比较简陋,但是基本可用跑一遍,并用testNG生成了测试报告. 学习方式无非是: ...