
51nod
NaCl__
这个作者很懒,什么都没留下…
展开
-
1284 2 3 5 7的倍数
给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。Input输入1个数N(1 Output输出不是2 3 5 7的倍数的数共有多少。Input示例10Output示例1 容斥原理,简单暴力#include#include#include#includeusing name原创 2015-07-18 22:06:27 · 541 阅读 · 0 评论 -
1065 最小正子段和
N个整数组成的序列a[1],a[2],a[3],…,a[n],从中选出一个子序列(a[i],a[i+1],…a[j]),使这个子序列的和>0,并且这个和是所有和>0的子序列中最小的。例如:4,-1,5,-2,-1,2,6,-2。-1,5,-2,-1,序列和为1,是最小的。Input第1行:整数序列的长度N(2 <= N <= 50000)第2 - N+1行:N个整数O原创 2016-01-05 19:05:54 · 694 阅读 · 0 评论 -
1051 最大子矩阵和
一个M*N的矩阵,找到此矩阵的一个子矩阵,并且这个子矩阵的元素的和是最大的,输出这个最大的值。例如:3*3的矩阵:-1 3 -12 -1 3-3 1 2和最大的子矩阵是:3 -1-1 31 2Input第1行:M和N,中间用空格隔开(2 <= M,N <= 500)。第原创 2016-01-10 17:51:23 · 613 阅读 · 0 评论 -
1264 线段相交
给出平面上两条线段的两个端点,判断这两条线段是否相交(有一个公共点或有部分重合认为相交)。 如果相交,输出"Yes",否则输出"No"。这道题刘汝佳的的训练指南上有有讲,其中判断端点是否在线段上需要判断四次#include#include#include#include#includeconst double eps=1e-10;using namespace std;str原创 2016-03-05 18:31:42 · 514 阅读 · 0 评论 -
1256 乘法逆元
给出2个数M和N(M 若K*M%N==1则称k为M%N的乘法逆元,逆元一般还用在除法取模上。其解法有扩展欧几里得定理和费马小定理,本题用的是扩展欧几里得定理#include#include#include#includeusing namespace std;const int mod=1000000007; long long X,y;long long gcd(long原创 2016-03-05 18:36:19 · 692 阅读 · 0 评论 -
1137 矩阵乘法
第1行:1个数N,表示矩阵的大小(2 <= N <= 100)第2 - N + 1行,每行N个数,对应M1的1行(0 <= M1[i] <= 1000)第N + 2 - 2N + 1行,每行N个数,对应M2的1行(0 #include#include#include#includeusing namespace std;const int N=100;struct Mat原创 2016-03-05 18:47:02 · 455 阅读 · 0 评论 -
1113 矩阵快速幂
给出一个N * N的矩阵,其中的元素均为正整数。求这个矩阵的M次方。由于M次方的计算结果太大,只需要输出每个元素Mod (10^9 + 7)的结果。#include#include#include#includeusing namespace std;const int N=100;const long long mod=1000000007;typedef long long原创 2016-03-05 18:48:37 · 415 阅读 · 0 评论 -
1268 和为K的组合
给出N个正整数组成的数组A,求能否从中选出若干个,使他们的和为K。如果可以,输出:"Yes",否则输出"No"这个题简单的dfs即可#include#include#include#includeusing namespace std;const int N=100;int vis[N];int a[N];int n,sum;int dfs(int x,int k)原创 2016-04-13 21:51:11 · 543 阅读 · 0 评论 -
51NOD 1060 最复杂的数
把一个数的约数个数定义为该数的复杂程度,给出一个n,求1-n中复杂程度最高的那个数。 例如:12的约数为:1 2 3 4 6 12,共6个数,所以12的复杂程度是6。如果有多个数复杂度相等,输出最小的。 我们先来认识一个东西,叫反素数。 具体的这篇博文讲的很详细:http://blog.youkuaiyun.com/acdreamers/article/details/25049767 这题的话,我们可原创 2016-07-22 21:34:33 · 703 阅读 · 0 评论 -
51NOD 1068 Bash游戏 V3
有一堆石子共有N个。A B两个人轮流拿,A先拿。每次拿的数量只能是2的正整数次幂,比如(1,2,4,8,16….),拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。 例如N = 3。A只能拿1颗或2颗,所以B可以拿到最后1颗石子。(输入的N可能为大数) 这是个博弈题。。我们可以先打个表看看 打表的过程如下#include<stdio.h>原创 2016-07-22 21:37:42 · 584 阅读 · 0 评论 -
1013 3的幂的和
求:3^0 + 3^1 +…+ 3^(N) mod 1000000007 Input 输入一个数N(0 <= N <= 10^9) Output 输出:计算结果 Input示例 3 Output示例 40 这题题目不难,套用等比数列的前 n项和的公式便可得知,Sn=a1*(1-q^n)/(1-q) 要用到快速幂取余和乘法逆元#include<stdio.h>#include<原创 2016-01-03 22:07:57 · 1287 阅读 · 0 评论 -
01相等的字串。
给出一个只有01的字符串,请找出最长的的01的数目的相等的字串。。这题最暴力的解决方法就是就是先预处理每个区间01的数目,然后枚举起点和重点,时间复杂度是O(N^2)。下面我们来介绍一种O(n)时间复杂度的做法。。。首先我们可以用一个数组B[i]把串A当中A[0...i]中1和0的差存起来。这样我们能发现符合要求的就是串满足B[i]==B[j].题目要要最最长,然后找到i-j跨度最大的原创 2015-12-31 09:05:16 · 862 阅读 · 0 评论 -
1087 1 10 100 1000
基准时间限制:1 秒 空间限制:131072 KB 分值: 5难度:1级算法题 收藏 关注 取消关注 1,10,100,1000...组成序列1101001000...,求这个序列的第N位是0还是1。Input第1行:一个数T,表示后面用作输入测试的数的数量。(1 Output共原创 2015-07-18 21:59:52 · 612 阅读 · 0 评论 -
51nod 1091 线段的重叠
基准时间限制:1 秒 空间限制:131072 KB 分值: 5难度:1级算法题 收藏 关注 取消关注 X轴上有N条线段,每条线段包括1个起点和终点。线段的重叠是这样来算的,[10 20]和[12 25]的重叠部分为[12 20]。给出N条线段的起点和终点,从中选出2条线段,这两条线段的重叠部分是最长原创 2015-07-18 21:49:22 · 515 阅读 · 0 评论 -
51nod 1090 3个数和为0
给出一个长度为N的无序数组,数组中的元素为整数,有正有负包括0,并互不相等。从中找出所有和 = 0的3个数的组合。如果没有这样的组合,输出No Solution。如果有多个,按照3个数中最小的数从小到大排序,如果最小的数相等则按照第二小的数排序。Input第1行,1个数N,N为数组的长度(0 Output如果没有符合条件的组合,输出No Solution。如果有多个,按原创 2015-07-18 21:40:28 · 444 阅读 · 0 评论 -
1289 大鱼吃小鱼
1289大鱼吃小鱼 题目来源: Codility 基准时间限制:1 秒 空间限制:131072 KB 分值: 5难度:1级算法题 收藏 关注 取消关注原创 2015-07-18 21:21:53 · 755 阅读 · 0 评论 -
1009 数字1的数量
给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。Input输入N(1 Output输出包含1的个数Input示例12Output示例5这个用普通的暴力是肯定会超时,所以要找规律,规律在这个博客上http://www.原创 2015-07-20 21:44:33 · 458 阅读 · 0 评论 -
1083 矩阵取数问题
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题收藏关注一个N*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,从左上走到右下,只能向下向右走,求能够获得的最大价值。例如:3 * 3的方格。1 3 32 1 32 2 1能够获得的最大价值为:11。Input 第1行:N,N为矩阵的大小。(2 <= N <= 500) 第2 - N + 1行:每行N个原创 2015-07-20 22:05:15 · 682 阅读 · 0 评论 -
1088 最长回文子串
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题收藏关注回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。输入一个字符串Str,输出Str里最长回文子串的长度。Input 输入Str(Str的长度 <= 1000)Output 输出最长回文子串的长度L。Input示例 daabaacOutput示例 5 水题,暴力,但不知为何自己原创 2015-07-20 22:09:28 · 572 阅读 · 0 评论 -
1080 两个数的平方和
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题收藏关注给出一个整数N,将N表示为2个整数i j的平方和(i <= j),如果有多种表示,按照i的递增序输出。例如:N = 130,130 = 3^2 + 11^2 = 7^2 + 9^2 (注:3 11同11 3算1种)Input 一个数N(1 <= N <= 10^9)Output 共K行:每行2个数,i j,表原创 2015-07-20 22:20:15 · 898 阅读 · 0 评论 -
1066 Bash游戏
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题收藏关注有一堆石子共有N个。A B两个人轮流拿,A先拿。每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N和K,问最后谁能赢得比赛。例如N = 3,K = 2。无论A如何拿,B都可以拿到最后1颗石子。Input 第1行:一个数T,表示后面用作输入测试的数的数量原创 2015-07-20 22:15:53 · 433 阅读 · 0 评论 -
51NOD 1070 Bash游戏 V4
有一堆石子共有N个。A B两个人轮流拿,A先拿。每次拿的数量最少1个,最多不超过对手上一次拿的数量的2倍(A第1次拿时要求不能全拿走)。拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N,问最后谁能赢得比赛。 例如N = 3。A只能拿1颗或2颗,所以B可以拿到最后1颗石子。 Bash游戏两连发。 还是打表找规律。通过打表我们可知当n为满足斐波那契数的时候。B才赢原创 2016-07-22 21:48:24 · 697 阅读 · 2 评论