今天是第一天来工作室学习。比起在宿舍,自己不敢偷懒了呢。
在OJ上做了几道题,有点累。
总结一下。
NYOJ5:ACM在线评测系统
http://acm.nyist.net/JudgeOnline/problem.php?pid=5
Binary String Matching
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
Given two strings A and B, whose alphabet consist only ‘0’ and ‘1’. Your task is only to tell how many times does A appear as a substring of B? For example, the text string B is ‘1001110110’ while the pattern string A is ‘11’, you should output 3, because the pattern A appeared at the posit
输入
The first line consist only one integer N, indicates N cases follows. In each case, there are two lines, the first line gives the string A, length (A) <= 10, and the second line gives the string B, length (B) <= 1000. And it is guaranteed that B is always longer than A.
输出
For each case, output a single line consist a single integer, tells how many times do B appears as a substring of A.
样例输入
3
11
1001110110
101
110010010010001
1010
110100010101011
样例输出
3
0
3

这一题,其实自己不知道怎么做,在网上看了别人的代码之后,自己打了一遍。主要用到了strstr。strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。

#include<stdio.h>
#include<string.h>
int main()
{int m;scanf("%d",&m);while(m--){char a[10],b[1010],*p;scanf("%s%s",a,b);p=b;int count=0;while((p=strstr(p,a))!=NULL){count++;p++;}printf("%d\n",count);
}
return 0;
}

参考来源:开开心心学算法–Binary String Matching - linuxblack125125的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/linuxblack125125/article/details/7814563

NYOJ6:题目6 - ACM在线评测系统
http://acm.nyist.net/JudgeOnline/problem.php?pid=6
喷水装置(一)
时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述
现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0<Ri<15)的圆被湿润,这有充足的喷水装置i(1<i<600)个,并且一定能把草坪全部湿润,你要做的是:选择尽量少的喷水装置,把整个草坪的全部湿润。
输入
第一行m表示有m组测试数据
每一组测试数据的第一行有一个整数数n,n表示共有n个喷水装置,随后的一行,有n个实数ri,ri表示该喷水装置能覆盖的圆的半径。
输出
输出所用装置的个数
样例输入
2
5
2 3.2 4 4.5 6
10
1 2 3 1 2 1.2 3 1.1 1 2
样例输出
2
5#include <stdio.h>
#include <math.h>
#include <string.h>
#define maxn 600+10
//练习归并排序
void merge(float *a,int p,int q,int r)
{int n1=q-p+1,n2=r-q;float left[n1],right[n2];int i,j,k;for(i=0; i<n1; i++)  left[i]=a[i+p];for(j=0; j<n2; j++)  right[j]=a[j+q+1];i=j=0;k=p;while(i<n1&&j<n2){if(left[i]<right[j])  a[k++]=right[j++];else a[k++]=left[i++];}while(i<n1){a[k++]=left[i++];}while(j<n2){a[k++]=right[j++];}}
void mergesort(float *a,int p,int r)
{int m;if(p<r){m=(p+r)/2;mergesort(a,p,m);mergesort(a,m+1,r);merge(a,p,m,r);}
}int main()
{int m;float a[maxn];scanf("%d",&m);while(m--){int i,n;int flag=0;float sum=0;scanf("%d",&n);for(i=0; i<n; i++)scanf("%f",&a[i]);mergesort(a,0,n-1);for(i=0; i<n; i++){if(a[i]>=1)//半径大于1即直径大于长方形宽度{sum+=2*sqrt(pow(a[i],2)-1);flag++;}if(sum>=20) break;}printf("%d\n",flag);}return 0;}

NYOJ7:题目7 - ACM在线评测系统
http://acm.nyist.net/JudgeOnline/problem.php?pid=7
街区最短路径问题
时间限制:3000 ms | 内存限制:65535 KB
难度:4
描述
一个街区有很多住户,街区的街道只能为东西、南北两种方向。

住户只可以沿着街道行走。

各个街道之间的间隔相等。

用(x,y)来表示住户坐在的街区。

例如(4,20),表示用户在东西方向第4个街道,南北方向第20个街道。

现在要建一个邮局,使得各个住户到邮局的距离之和最少。

求现在这个邮局应该建在那个地方使得所有住户距离之和最小;

输入
第一行一个整数n<20,表示有n组测试数据,下面是n组数据;
每组第一行一个整数m<20,表示本组有m个住户,下面的m行每行有两个整数0

2
3
1 1
2 1
1 2
5
2 9
5 20
11 9
1 1
1 20
样例输出
2
44
排序方法有好多,只是最近学了归并排序,所以一直在练习这个
//NYOJ7——街区最短路径问题
#include <stdio.h>
#include <math.h>
#include <string.h>
//目标:解决NYOJ7,同时练习归并排序.
void merge(int *a, int p,int q,int r)//归并
{int n1,n2;n1=q-p+1;n2=r-q;int left[n1];int right[n2];int i,j,k;for(i=0; i<n1; i++)left[i]=a[p+i];for(j=0; j<n2; j++)right[j]=a[j+1+q];i=j=0;k=p;while(i<n1&&j<n2){if(left[i]>right[j])a[k++]=right[j++];else a[k++]=left[i++];}while(i<n1){a[k++]=left[i++];}while(j<n2){a[k++]=right[j++];}
}
void mergesort(int *a,int p,int r)//递归分治
{int m;if(p<r){m=(p+r)/2;mergesort(a,p,m);mergesort(a,m+1,r);merge(a,p,m,r);}
}
int main()
{int a[20],b[20];int m,n;scanf("%d",&m);while(m--){scanf("%d",&n);int i,j;int sum;for(i=0; i<n; i++)scanf("%d%d",&a[i],&b[i]);mergesort(a,0,n-1);mergesort(b,0,n-1);sum=0;for(j=0; j<n/2; j++)sum+=a[n-1-j]-a[j]+b[n-1-j]-b[j];printf("%d\n",sum);}return 0;
}

参考资料来源:开开心心学算法–街区最短路径问题的二种解法 - linuxblack125125的专栏 - 博客频道 - CSDN.NET
http://blog.csdn.net/linuxblack125125/article/details/7820796

NYOJ26:
题目26 - ACM在线评测系统
http://acm.nyist.net/JudgeOnline/problem.php?pid=26
孪生素数问题
时间限制:3000 ms | 内存限制:65535 KB
难度:3
描述
写一个程序,找出给出素数范围内的所有孪生素数的组数。一般来说,孪生素数就是指两个素数距离为2,近的不能再近的相邻素数。有些童鞋一看到题就开始写程序,不仔细看题,咱们为了遏制一下读题不认真仔细的童鞋,规定,两个素数相邻为1的也成为孪生素数。
输入

第一行给出N(0<N<100)表示测试数据组数。
接下来组测试数据给出m,表示找出m之前的所有孪生素数。
(0<m<1000000)
输出
每组测试数据输出占一行,该行为m范围内所有孪生素数组数。
样例输入
1
14
样例输出
4
//目标:解决NYOJ26——孪生素数问题,并练习筛法求素数
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define maxn 1000000+10
int a[maxn],b[maxn];
void prime(int l)
{memset(a,0,sizeof(a));memset(b,0,sizeof(b));a[0]=a[1]=1;int i,j,flag=0;for(i=4; i<=l; i+=2)a[i]=1;for(i=2; i<=l; i++){if(!a[i]) b[flag++]=i;for(j=0; j<flag&&i*b[j]<=l; j++)a[i*b[j]]=1;}
}
//已测试筛子能用int main()
{int m;scanf("%d",&m);while(m--){int n;scanf("%d",&n);prime(n);int i,count=0;for(i=0;b[i]!=0;i++)if(b[i+1]-b[i]==1||b[i+1]-b[i]==2)  count++;printf("%d\n",count);}return 0;
}

最后做了一个分解质因数的题

//将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

#include <stdio.h>
#include <math.h>
#include <string.h>
#define maxn 100
int a[100],b[100];
void prime(int *a,int *b)
{memset(a,0,sizeof(a));a[0]=a[1]=1;int i,j,k=0;for(i=4; i<maxn; i+=2)a[i]=1;for(i=2; i<maxn; i++)if(!a[i])  b[k++]=i;{for(j=0; j<k&&i*b[j]<maxn; j++)a[i*b[i]]=1;}}void sugar(int t)
{prime(a,b);int i=0;int k=b[i];printf("%d=",t);while(k!=t){if(t%k==0){printf("%d",k);t/=k;}else k=[i++];}
}
int main()
{int m;scanf("%d",&m);sugar(m);return 0;
}

小sugar呀____DAY4:总结相关推荐

  1. 小sugar呀——入门——记录

    第一章--程序入门 1.在算法竞赛中不要使用头文件 conio.h,包括getch().clrscr()等函数 2.尽量用const关键字声明常数 3.KISS--keep It Simple and ...

  2. 【洛谷】【lca+结论】P3398 仓鼠找sugar

    [题目描述:] 小仓鼠的和他的基(mei)友(zi)sugar住在地下洞穴中,每个节点的编号为1~n.地下洞穴是一个树形结构.这一天小仓鼠打算从从他的卧室(a)到餐厅(b),而他的基友同时要从他的卧室 ...

  3. JS:关于JS字面量及其容易忽略的12个小问题

    简要 问题1:不能使用typeof判断一个null对象的数据类型 问题2:用双等号判断两个一样的变量,可能返回false 问题3:对于非十进制,如果超出了数值范围,则会报错 问题4:JS浮点数并不精确 ...

  4. tor the onion router下载_盒马生鲜超市购物app下载,打开盒马鲜生小程序!

    epsi,a drink for indigestion 百事,一种医治消化不良的饮料 Like many other carbonated beverages,Pepsi began to be s ...

  5. 流程图讲解_流程图小作文练习,详细讲解+精选范文!你们的魔鬼来了(一)...

    流程图比较少考,话说平时一个月必须考一次流程或是地图题.相对其他的类型小作文,很多人会觉得流程图和地图题比较难写,这两天给大家整理了一下这类题的写法. [干货篇]--你们的魔鬼,流程图来啦!下一篇是地 ...

  6. 百度数据可视化Sugar BI — 表计算

    Sugar BI 中的图表除了只能绑定度量或只能绑定维度的图表,都支持表计算.表计算可以对数据模型的查询结果进行二次计算,计算时机在 sql 查询之后.比如我们查询了 2013 年度到 2016 年度 ...

  7. 微信小程序html5音频,微信小程序 audio音频播放详解及实例

    loop:是否循环播放 id:标注唯一组件以this.audioCtx = wx.createAudioContext('myAudio')获取控制组件的对象. bindplay:播放时触发该事件 b ...

  8. 上传声音 微信小程序_微信小程序之----audio音频播放

    audio audio为音频组件,我们可以轻松的在小程序中播放音频. audio组件属性如下: 属性名类型默认值说明 id String video 组件的唯一标识符, src String 要播放音 ...

  9. C# 语法糖(Syntactic sugar)

    定义 语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能 ...

最新文章

  1. jQuery中的页面载入($()、ready(fn)、onload)
  2. Velocity的中文问题
  3. DataFactory连接MySQL数据库
  4. 数据预处理 泰坦尼克号_了解泰坦尼克号数据集的数据预处理
  5. leetcode1487. 保证文件名唯一
  6. 学计算机土味情话,计算机土味情话
  7. 递归法:整数划分问题(怎么进行划分呢)
  8. Eclipse Debug 配置
  9. 东芝打印机共享怎么设置_东芝 e-studio181怎么设置网络打印机
  10. Siege(开源Web压力测试工具)——多线程编程最佳实例
  11. vue电商后台管理系统--订单管理篇
  12. canvas教程14-资源管理器
  13. java excel 单元格 斜线_JAVA POI EXCEl单元格内部分字符设置样式 HSSFRichTextString用法...
  14. JS微信打飞机游戏(一)
  15. [业务流程]JWT实现单点登录(SpringBoot + Vue +axious)
  16. 为什么http请求会缓存?显示from disk cache?
  17. logstash解析iis日志
  18. 联通的光纤--无线路由--mac过滤--存在问题
  19. 高一计算机课期中考试总结反思,2017高一数学期中考试反思总结
  20. java全栈系列之JavaSE-面向对象(类与对象的创建)032

热门文章

  1. cesium--画一个椭球
  2. 身份证号要是能修改就好了,不怕被骗子骗了
  3. darknet yolov4 python接口测试图像
  4. python二手房使用教程_python实战:基于链家网二手房数据解析任务
  5. Tensorflow-slim 做扑克,麻将,花牌的分类
  6. 秋招—文思海辉笔试题
  7. 【论文翻译】Deep Residual Learning for Image Recognition
  8. python判断三角形是否直角_Python3如何判断三角形的类型
  9. Allocate exception for servlet XXX 基本异常
  10. LeetCode:Database 115.仓库经理