c语言
叫我小海吧
这个作者很懒,什么都没留下…
展开
-
字符串相关算法
kmp寻找子串kmp,最重要的一步就是计算lps数组(匹配数组)void fun_lps(){ int k=0; for (int i=1;i<s.size();i++) { while (k > 0 && s[i] != s[k]) { k = lps[k - 1]; ...原创 2020-03-14 19:52:08 · 184 阅读 · 1 评论 -
模拟加法
You are given three numbers. Is there a way to replace variables A, B and C with these numbers so the equality A + B = C is correct?InputThere are three numbers X1, X2 and X3 (1 ≤ Xi ≤ 10100), each ...原创 2020-01-11 16:15:43 · 261 阅读 · 1 评论 -
c++11中用printf对浮点数输出的问题
突然发现在c++11中用printf ()输出double类型的数据的时候要用%f开始以为我的编译器崩了嘿嘿嘿原创 2019-12-27 16:25:41 · 1254 阅读 · 0 评论 -
丑数ugly_number
丑数是指因子只有2,3,5的数字,特别的1被认为是丑数;寻找第1500个丑数按照一般的思路就是,暴力模拟,不断的用循环变量去除以2,3,5;弱国能除尽就让计数器++;直到计数器==1500;这样做确实可以但是会很浪费时间#include<iostream>#include<cstdio>#include<queue>#include<vector&...原创 2019-12-17 18:59:31 · 168 阅读 · 0 评论 -
Expedition
这个问题说的就是,你有开着有一辆车,你需要从你当前的位置开到城镇,但是你车里油不够,你需要在中途停下来加油,每行驶一单位的距离会消耗一个单位的油,会给你n组数据,每组数据分别表示不同的加油站到城镇的距离和加油的油量。(假设汽车的油箱是无限大的,你可以在每一个站点停下来加油),第n+1组数据表示的是当前的位置和油量。题目要求求出最少的停靠次数,如果不能到达的话就输出-1;思路停靠次数最少,在中...原创 2019-12-17 09:04:59 · 187 阅读 · 0 评论 -
let the ball rise
输入第一个数据表示输入的颜色的个数int n;while (~scanf ("%d",&n)){ getchar();读入个数然后用grtchar()去掉最后的回车;当n != 0 的时候;输入的颜色单词看作字符串,然后把多个字符串联系在一起就用二维数组;题目中没有各处具体的单词有多少个,所以就把数组开的大一点;if (n == 0) break; char word[...原创 2019-12-04 22:53:50 · 158 阅读 · 1 评论 -
HDU2037,今年暑假不AC
思路简单的贪心算法,首先要对输入的数据排序;按照结束的时间从小到大排序,当结束的时间相同时;按照开始的时间升序排序;再来判断上一个节目的结束时间是否大于这次的开始的时间;true就是计数器加一;组后输出计数器;#include<stdio.h>#include<algorithm>using namespace std;struct jiemu { in...原创 2019-11-02 17:24:24 · 132 阅读 · 2 评论 -
acm 绝对值排序
数据的输入这次的题目和之前的有一些区别,数据输入的时候,不在时以文件的结尾表示结束,而是把n作为了循环结束的条件;但是我们为了保险起见还是采用以往的你那种方式while (~scanf("%d",&n))在输入n之后做一个判断,如果n=0就breakint n,i,t; while (~scanf("%d",&n)){ if (n==0||n<0) { //...原创 2019-10-28 16:49:53 · 1007 阅读 · 3 评论 -
acm sum problem
数据的输入;数据有多组输入,每行一个n,在题目中也说明了要怎样输入 while(~scanf("%d", &n)) {}输入到文件结尾scanf返回-1取反为0结束运行;核心代码:在内层循环中让i从1开始循环,一直到n(包括n再内);用sum来记录,每次循环开始之前首先初始化sum=0防止sum的初始值干扰程序的运行,sum+=i运行结束后的sum的值就是要求的数据输出题...原创 2019-10-28 14:10:16 · 198 阅读 · 1 评论