1001 数组中和等于K的数对 1002 数塔取数问题 1003 阶乘后面0的数量 1004 n^n的末位数字 1009 数字1的数量
- 第1行:用空格隔开的2个数,K N,N为A数组的长度。(2 <= N <= 50000,-10^9 <= K <= 10^9)
- 第2 - N + 1行:A数组的N个元素。(-10^9 <= A[i] <= 10^9)
- 第1 - M行:每行2个数,要求较小的数在前面,并且这M个数对按照较小的数升序排列。
- 如果不存在任何一组解则输出:No Solution。
- 8 9
- -1
- 6
- 5
- 3
- 4
- 2
- 9
- 0
- 8
- -1 9
- 0 8
- 2 6
- 3 5
排序后线扫差不多吧,简单贪心。
- #include<cstdio>
- #include<algorithm>
- #include<cmath>
- #include<iostream>
- #include<cstring>
- #include<map>
- using namespace std;
- const int NN=;
- int n,k;
- int a[NN];
- bool boo=;
- map<int,int>p;
- int main()
- {
- scanf("%d%d",&k,&n);
- for (int i=;i<=n;i++)
- {
- scanf("%d",&a[i]);
- p[a[i]]++;
- }
- sort(a+,a+n+);
- for (int i=n;i>=;i--)
- {
- int x=k-a[i];
- if (x>=a[i]) break;
- if (p[x]) {printf("%d %d\n",x,a[i]);boo=;}
- }
- if (!boo) printf("No Solution\n");
- }
- 第1行:N,N为数塔的高度。(2 <= N <= 500)
- 第2 - N + 1行:每行包括1层数塔的数字,第2行1个数,第3行2个数......第k+1行k个数。数与数之间用空格分隔(0 <= A[i] <= 10^5) 。
- 输出最大值
- 4
- 5
- 8 4
- 3 6 9
- 7 2 9 5
- 28
一道dp的水题吧。
- #include<cstdio>
- #include<algorithm>
- #include<iostream>
- #include<cmath>
- #include<cstring>
- using namespace std;
- const int NN=,INF=1e8+;;
- int n;
- int f[NN][NN];
- int main()
- {
- scanf("%d",&n);
- for (int i=;i<=n;i++)
- for (int j=;j<=i;j++)
- scanf("%d",&f[i][j]);
- for (int i=;i<=n;i++)
- for (int j=;j<=i;j++)
- f[i][j]=max(f[i][j]+f[i-][j-],f[i][j]+f[i-][j]);
- int ans=-INF;
- for (int i=;i<=n;i++)
- ans=max(ans,f[n][i]);
- printf("%d\n",ans);
- }
- 一个数N(1 <= N <= 10^9)
- 输出0的数量
- 5
- 1
- 发现2一定比5多,所以只要找5的倍数即可除一除就好了。
- #include<cstdio>
- #include<algorithm>
- #include<iostream>
- #include<cmath>
- #include<cstring>
- #include<map>
- using namespace std;
- int n,ans=;
- int main()
- {
- scanf("%d",&n);
- for (long long x=;x<=n;x*=)
- ans+=(n/x);
- printf("%d\n",ans);
- }
- 一个数N(1 <= N <= 10^9)
- 输出N^N的末位数字
- 13
- 3
- 水题吧,最后一位乘一乘,取模即可。
- #include<cstdio>
- #include<algorithm>
- #include<cmath>
- #include<iostream>
- #include<cstring>
- using namespace std;
- int n;
- bool boo[]={};
- int flag[]={};
- int main()
- {
- scanf("%d",&n);
- int y=n%;
- int x=n%,ci=;
- while()
- {
- if (boo[x]) break;
- ci++,boo[x]=,flag[x]=ci;
- x=x*y%;
- }
- x=n%ci;
- if (x==) x=ci;
- for (int i=;i<=;i++)
- if (flag[i]==x)
- {
- printf("%d\n",i);
- break;
- }
- }
- 1009 数字1的数量
- 输入N(1 <= N <= 10^9)
- 输出包含1的个数
- 12
- 5
- 这道题可以计算每个位置出现1的次数,一个简单的数学归纳+计算,具体看代码。
- #include<cstdio>
- #include<algorithm>
- #include<iostream>
- #include<cmath>
- #include<cstring>
- using namespace std;
- int n;
- int main()
- {
- scanf("%d",&n);
- int ans=,tail=,mi=;
- while (n!=)
- {
- int x=n%;
- n/=;
- ans+=n*mi;
- if (x==) ans+=tail+;
- if (x>) ans+=mi;
- tail=tail+x*mi,mi*=;
- }
- printf("%d",ans);
- }
- 应该还是可以理解的,比较快。
1001 数组中和等于K的数对 1002 数塔取数问题 1003 阶乘后面0的数量 1004 n^n的末位数字 1009 数字1的数量的更多相关文章
- 1001 数组中和等于K的数对
1001 数组中和等于K的数对 基准时间限制:1 秒 空间限制:131072 KB 给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A ...
- 51nod 1001 数组中和等于K的数对【二分查找/排序】
1001 数组中和等于K的数对 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组 ...
- 51Nod 1001 数组中和等于K的数对 And 1015 水仙花数
1001 数组中和等于K的数对 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K ...
- 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 ...
- 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 ...
- 1001 数组中和等于K的数对 1090 3个数和为0
二分查找.对数组每个V[i],在其中查找K-V[i],查找完成后修改v[i]避免重复输出 #include<iostream> #include<algorithm> #inc ...
- 51Nod 1001 数组中和等于K的数对
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1001一开始的想法是排序后二分搜索,发现会进行非常多不必要的遍历,十分耗时 ...
- 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 ...
- 51Nod - 1001:数组中和等于K的数对
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A: ...
随机推荐
- linux命令详解(一)netstat
今天在使用linux的时候,要查看端口号,但是不知道要使用哪一个命令所以就学习了一下,原来是使用netstat,接下来给大家一起来学习. 一.netstat介绍 1.1.简介 Netstat 命令用于 ...
- 利用 FormData 对象和 Spring MVC 配合可以实现Ajax文件上载功能
Ajax文件上载 利用 FormData 对象和 Spring MVC 配合可以实现Ajax文件上载功能: 步骤 导入组件并准备静态脚本 <dependency> <groupId& ...
- [ASP.NET MVC] Razor 布局
整体视图模板 View模板会先找到对应的controller文件,再找此文件下的Shared文件夹. 比如项目最外层的View/Shared 目录下有一个_Layout.cshtml模板页,有这样代码 ...
- JS中event.keyCode用法及keyCode对…
js中event.keyCode用法及keyCode对照表 标签: javascriptJavaScriptJavascriptjavaScript 2012-12-11 15:11 HTML Jav ...
- 看懂c/c++ 函数、指针、数组定义
读懂 函数 + 指针 + 数组 c语言运算符机器优先级,看这里 结合运算符优先级,我们试着读懂函数和指针 优先级简单看 表达式提升():一级优先 函数():二级优先 数组[]:二级优先 指针定义*:三 ...
- 201521123015 《Java程序设计》第七周学习总结
1. 本周学习总结 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 源代码如下: public boolean contains(Object ...
- Java-错误处理机制学习(一)异常处理
注意:本文介绍Java中的异常处理理论知识及相关语法结构,对于实际应用来说是万万不够的.关于如何高效地使用异常,请查看Java-高效地使用Exception-实践. 异常处理的思想是,当应用程序处于异 ...
- 201521123066 《Java程序设计》第十周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 有关异常的知识点: 一段代码可能生成多种类型的异常,子类异常必须放在父类异常前面,否则会出现编译错误: 可以 ...
- Window10中利用Windbg与虚拟机(window7)中调试驱动建立方法
想起自己的windbg配置就转载:eqera的windows内核调试配置,真的是获益良多希望他不会介意我转载他的博客,帮了我很多,记录下来给我也给大家, 其中我主要看的是VMWare的pipe建立,而 ...
- python webdriver 环境搭建详解
学了一个月用java编写selenium driver 测试脚本,也将公司做的系统基本可用的模块做了一次自动化,虽然写的比较简陋,但是基本可用跑一遍,并用testNG生成了测试报告. 学习方式无非是: ...