51nod
thoughtspark
有过大数据数仓开发经验,以及用户画像项目,曾参加过算法类竞赛,未来走机器挖掘方向,有志同道合的朋友可以关注我 微信:Thoughtspark
展开
-
51nod 与7无关的数
1082 与7无关的数.txt#includeusing namespace std;typedef long longll;ll a[1000005]; ll slove(ll x){if(x%7==0)return1;intans=0;intt; while(x>1){if(x%10==7){ans=1;break;}原创 2017-08-11 11:19:02 · 299 阅读 · 0 评论 -
51nod 1096 距离之和最小 【思维题】
这道题原本理解错了 其实是在给定的数中 找到一个点,并且该点到其他点的距离最小因此这样就简单了 排个序, 找到中间点 然后与其他点的距离加在一起 即可#include<iostream>#include<algorithm>#include<cmath>using namespace std;int main(){ long long n,m[10005],sum=0;;原创 2017-10-22 20:37:24 · 244 阅读 · 0 评论 -
51nod 1268 和为K的组合 【dfs or dp】
dfs做法这个dfs写的不错 开始我写的运行结果是错的,这个是某一个大神的,代码很短 ,而且很精炼,值得学习#include<iostream>#include<stdio.h>#include<string>#include<string.h>using namespace std;int flag=0,n;long long a[30];long long m;void df原创 2017-10-22 20:41:15 · 250 阅读 · 0 评论 -
51nod 1138 连续整数的和 【栈操作】
#include<iostream>#include<cstring>#include<math.h>#include<algorithm>#include<stack>using namespace std;typedef long long ll;const int Max=1e5+5;int n, cnt;ll arr[Max];ll f(int x){ retur原创 2017-10-13 18:03:00 · 163 阅读 · 0 评论 -
51nod 1279 扔盘子 【二分+区间优化】
#include<iostream>#include<algorithm>using namespace std;int main(){ ios::sync_with_stdio(false); int n,m; long long a[50005],b[50005]; cin>>n>>m; a[n]=0x3f3f3f3f; for(int i=n原创 2017-10-13 18:04:02 · 192 阅读 · 0 评论 -
51nod 1095 Anigram单词 【map的使用】
#include<iostream>#include<map>#include<algorithm>#include<vector>using namespace std;map<string,int> ans; //该字符是否存在map<string,int> a; //该字符排好序的有几个int n,m;string judge(string a){ string e=a原创 2017-10-13 18:04:54 · 141 阅读 · 0 评论 -
51nod 1289 大鱼吃小鱼 【stack的使用】
/*告诉我们一个故事,不加任何一个符号的后果是很残酷的! 原本 s.top() 我给少了一个(),结果一直不对*/#include<iostream>#include<stack>using namespace std;int main(){ ios::sync_with_stdio(false); stack<int> s; int n; cin>>n;原创 2017-10-13 18:48:04 · 203 阅读 · 0 评论 -
51nod 1416 两点 【dfs+特殊判断】
题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 福克斯在玩一款手机解迷游戏,这个游戏叫做”两点”。基础级别的时候是在一个n×m单元上玩的。像这样: 每一个单元有包含一个有色点。我们将用不同的大写字母来表示不同的颜色。 这个游戏的关键是要找出一个包含同一颜色的环。看上图中4个蓝点,形成了一个环。一般的原创 2017-11-08 20:30:42 · 259 阅读 · 0 评论 -
51nod 1014 X^2 Mod P【暴力】
#include#include#includeusing namespace std;int m[100000];int main(){ int p,a; cin>>p>>a; int flag=0; int k=0; for(long long i=1;i<=p;i++) if(i*i%p==a){flag=1; m[k++]=i;} if(!flag) cou原创 2017-10-22 20:48:41 · 395 阅读 · 0 评论 -
51nod 1163 最高的奖励 【贪心 ,并查集】
并查集做法:#include#include#includeusing namespace std;#define N 50005long long f[N];pair m[N]; //作为结构体的作用 第一个为first 第二个为 second 按frist排序 小到大 int find(int x){ if(x<=0) return -1; //这是边原创 2017-10-22 20:47:33 · 220 阅读 · 0 评论 -
51nod 1396 还是01串 【思维题】
先记录所有1的个数,然后通过,对每一个0的,判断是否和后面的1相等即可#include#include#includeusing namespace std;char a[10000010];int main(){ gets(a); int s=0; //s为1的 个数 int sum=0; for(int i=0;i<strlen(a);i++) if(a[i]=='1'原创 2017-10-22 20:45:40 · 170 阅读 · 0 评论 -
51nod 1414 冰雕
用暴力枚举 一个一个加#include<stdio.h>int a[1000010];int main(){ int n; scanf("%d",&n); int sum=0; for(int i=1;i<=n;i++){scanf("%d",&a[i]),sum+=a[i];} int ma=sum; int sum1=0; for(in原创 2017-11-05 14:10:19 · 166 阅读 · 0 评论 -
51nod 1035 最长的循环节【模拟除法】
#include<iostream>#include<string.h>using namespace std;int d[1000000];int fun(int x){ //模拟除法 一点一点的除 直到 一个数出现两次 或者除尽 就结束 返回其长度 int k=1,l=1; memset(d,0,sizeof(d)); while(1){ k*原创 2017-11-05 14:11:43 · 369 阅读 · 0 评论 -
51nod 1092 回文字符串 【巧用 dp】
用原串和倒置串进行匹配 统计不同的单词的个数 该个数即为 需要添加的 也为 需要删除的#include<bits/stdc++.h>using namespace std;const int ma=1e3+10;int dp[ma][ma];int main(){ ios::sync_with_stdio(false); string a,b; cin>>a;原创 2017-10-22 20:32:40 · 229 阅读 · 0 评论 -
51nod 1097 拼成最小的数 【简单排序】
字符串排序即可#include<iostream>#include<algorithm>#include<string.h>#include<queue>#include<string>using namespace std;int n;string a[10005];bool cmp(string a,string b){ return a+b<b+a;}int main原创 2017-10-22 20:29:17 · 232 阅读 · 0 评论 -
51nod 1413 权势二进制 【思维题】
不作多解释 只需要找到该数每一位 的最大数即可#include<iostream>#include<algorithm>using namespace std;int main(){ int n; cin>>n; int maxx=-1; while(n){ maxx=max(maxx,n%10); n/=10; }原创 2017-10-22 20:28:07 · 480 阅读 · 0 评论 -
1106 质数检测 【简单素数判断】
1106质数检测基准时间限制:1 秒 空间限制:131072 KB 分值:0难度:基础题 收藏 关注 取消关注给出N个正整数,检测每个数是否为质数。如果是,输出"Yes",否则输出"No"。Input第1行:一个数N,表示正整数的数量。(1 <= N <= 1000)第2 - N + 1行:每行1原创 2017-09-13 19:58:16 · 247 阅读 · 0 评论 -
1181 质数中的质数(质数筛法)
如果一个质数,在质数列表中的编号也是质数,那么就称之为质数中的质数。例如:3 5分别是排第2和第3的质数,所以他们是质数中的质数。现在给出一个数N,求>=N的最小的质数中的质数是多少(可以考虑用质数筛法来做)。Input输入一个数N(N Output输出>=N的最小的质数中的质数。Input示例20Output示例31原创 2017-09-13 20:58:03 · 337 阅读 · 0 评论 -
第八场多校联盟 Problem D: 数列问题 【矩阵快速幂】
Description一个数列数列f(0)=0,f(1)=1,f(2)=1,f(3)=2,f(4)=3,f(5)=5......Input输入整数t,表示t组测试数据接下来t行,每行输入n(0Output对于每个n输出f(n)%1000007Sample Input213Sample Output12#include #inc原创 2017-09-16 18:03:16 · 292 阅读 · 0 评论 -
51nod 1009 数字1的数量
编程之美系列之三——计算1的个数 问题描述: 给定一个十进制整数N,求出从1到N的所有整数中出现”1”的个数。 例如:N=2,1,2出现了1个“1”。 N=12,1,2,3,4,5,6,7,8,9,10,11,12。出现了5个“1”。 问题求解: 解法一: 最直接的方法就是从1开始遍历到N,将其中每一个数中含有“1”的转载 2017-09-26 19:34:24 · 310 阅读 · 0 评论 -
1009 数字1的数量
1009 数字1的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题 收藏 关注 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。 Input 输入N(1 <= N <= 10^9) Output 输出包含1的个数 In原创 2017-09-26 20:33:24 · 498 阅读 · 0 评论 -
约瑟夫问题 51nod 1073 约瑟夫环
1073约瑟夫环基准时间限制:1 秒 空间限制:131072 KB 分值:0难度:基础题 收藏 关注 取消关注N个人坐成一个圆环(编号为1 - N),从第1个人开始报数,数到K的人出列,后面的人重新从1开始报数。问最后剩下的人的编号。例如:N = 3,K = 2。2号先出列,然后是1号,最后剩下的是3号。I原创 2017-09-09 13:43:06 · 141 阅读 · 0 评论 -
Lcs最长递增 51nod
#include#include#include#includeusing namespace std;int main(){ int n,res=0; string a; char d[100000]={""}; cin>>n; int e=1,ans=1; while(n--) { cin>>a; memset(d,0,sizeof(d)); for(i原创 2017-09-08 23:34:10 · 156 阅读 · 0 评论 -
2006 飞行员配对(二分图最大匹配)
题目来源: 网络流24题基准时间限制:1 秒 空间限制:131072 KB 分值:0难度:基础题 收藏 关注 取消关注第二次世界大战时期,英国皇家空军从沦陷国征募了大量外籍飞行员。由皇家空军派出的每一架飞机都需要配备在航行技能和语言上能互相配合的2名飞行员,其中1名是英国飞行员,另1名是外籍飞行员。在众多的飞行员中,每一名外籍飞行员都可以原创 2017-09-10 19:29:50 · 259 阅读 · 0 评论 -
lcs 51nod 1006 最长公共子序列Lcs
给出两个字符串A B,求A与B的最长公共子序列(子序列不要求是连续的)。比如两个串为:abcicbaabdkscabab是两个串的子序列,abc也是,abca也是,其中abca是这两个字符串最长的子序列。Input第1行:字符串A第2行:字符串B(A,B的长度 Output输出最长的子序列,如果有多个,随意输出1个。Inp原创 2017-09-09 10:30:52 · 183 阅读 · 0 评论 -
51nod 1596 搬货物 【思维题】
遵从一个规律 是否由 两个相同的可以合并 可以合并就 进行下一阶段的判定 如果只有单个的 只能将其统计#include<iostream>#include<string.h>#include<queue>using namespace std;int n,w,ans=0;int a[1001000];int main(){ ios::sync_with_stdio(false原创 2017-10-22 19:50:16 · 190 阅读 · 0 评论 -
51nod 1266 蚂蚁 【思维题】
求最长时间 只需要求出 每一个蚂蚁到边缘的最长距离中找到最大的按个距离 求最短时间 只需要求出 每一个蚂蚁到边缘的最短距离中的最大距离即可!#include<iostream>#include<string.h>using namespace std;int l;int x[50000];int n;int main(){ ios::sync_with_stdio(false原创 2017-10-22 19:57:15 · 250 阅读 · 0 评论 -
51nod 1433 0和5 【思维题】
这个数的特点就是 必须要有0。 没有0 则不会被90整除 并且5存在的个数必须是9的倍数 不然也不行 因此输出9倍数的5 在输出0(存在多个0,全输完最大) 即最大数#include<iostream>using namespace std;int main(){ int n,a; int o=0,e=0; //0 0的个数 e5的个数 cin>>n; for原创 2017-10-22 20:00:57 · 560 阅读 · 0 评论 -
51nod 1010 只包含因子2 3 5的数 【容器 +二分 】
这道题 看了网上全是 一种解法,就没再看,想自己用容器模拟出来, 可是没想到 自己用的不是很熟练, 有思路,但写不出来,因此 ,我又借鉴了 另一位高人的博客,(这里 入门经典里面也有 这种类似题 方法很不错 )/*这是我写的 但是出粗了 哎 ,心里很不是滋味!不过也增加了一些熟练度,互勉#include<iostream>#include<algorithm>#include<vector>原创 2017-10-22 20:21:13 · 272 阅读 · 0 评论 -
51nod 1278 相离的圆 【贪心】
这道题 只用将其 形象为 线段的相交 然后已知的是线段的左右端点, 然后对左端点 进行一个从大到小的排序,然后贪心的去比较每一个与当前线段的右端点比较大小,如果比起大 说明后面的圆都比他大 只用统计该线段到总线段的差就行#include<iostream>#include<string.h>#include<algorithm>using namespace std;int n;str原创 2017-10-22 20:26:56 · 194 阅读 · 0 评论 -
51nod 1126 求递推序列的第N项【矩阵快速幂】
#include<iostream>#include<string.h>using namespace std;const int mod=7;typedef struct node{ long long a[2][2]; void init(){ //初始化单位矩阵 memset(a,0,sizeof(a)); for(int i=0;i<原创 2017-11-05 14:19:08 · 214 阅读 · 0 评论