算法
孤独的娃娃菜
!!!!
展开
-
二进制-枚举子集
话说大诗人李白,一生好饮。幸好他从不开车。一天,他提着酒壶,从家里出来,酒壶中有酒两斗。他边走边唱:无事街上走,提壶去打酒。逢店加一倍,遇花喝一斗。这一路上,他一共遇到店 55 次,遇到花 1010 次,已知最后一次遇到的是花,他正好把酒喝光了。请你计算李白遇到店和花的次序,有多少种可能的方案。这个题目解法很多,二进制枚举是一种写起来非常简洁的解法。我们已知遇店 5原创 2017-02-19 15:47:22 · 234 阅读 · 0 评论 -
2016第七届蓝桥杯C/C++ B组省赛题解 C题 (全排列的学习)
2016第七届蓝桥杯C/C++ B组省赛题解 C题 (全排列的学习)原创 2016-04-08 08:12:39 · 675 阅读 · 0 评论 -
费马小定理
(选自《数论妙趣——数学女王的盛情款待》第六章 开门咒)数论中充斥着许多易于观察到的事实,诱使人们用普通归纳推理的办法去进行推广。对此,必须慎之又慎,以免误入陷阱。设想你偶而把2自乘7次,再减去2,得27-2=126,随后发现,126恰好能被2的幂指数7整除。接着又发现,25-2=30,30也能被2的幂指数5整除;211-2=2048,2048也能被2的幂指数11整除。从7,5,1转载 2017-05-07 23:51:17 · 336 阅读 · 0 评论 -
矩阵快速幂
f(1)=1, f(2)=1 , f(n)=a*f(n-1)+b*f(n-2),输出n和m,求 f(n) % m 的值。n是1到10^18次方的数。如果按照朴素计算的话,由于18次方,还是特别慢。如果使用矩阵形如,dp[n]=An−1⋅dp[1]则f(n) :struct matrix{ long long ab[k][k];};matrix mul(mat原创 2017-05-09 20:51:04 · 201 阅读 · 0 评论 -
PAT L1-005. 考试座位号 Java超时解决方案
每个PAT考生在参加考试时都会被分配两个座位号,一个是试机座位,一个是考试座位。正常情况下,考生在入场时先得到试机座位号码,入座进入试机状态后,系统会显示该考生的考试座位号码,考试时考生需要换到考试座位就座。但有些考生迟到了,试机已经结束,他们只能拿着领到的试机座位号码求助于你,从后台查出他们的考试座位号码。输入格式:输入第一行给出一个正整数N(<=1000),随后N行,每行给出一个...原创 2018-03-23 20:27:12 · 1414 阅读 · 2 评论 -
字符串排序/字典序最小拼接方式
改写cmp函数#include <iostream>#include <algorithm>using namespace std;bool cmp(const string &a,const string &b){ return a+b < b+a;}int main(){ string str[100]; i...原创 2018-06-22 15:18:09 · 916 阅读 · 0 评论 -
hdu 1007 最近点对问题
给出二维平面上的n个点,求其中最近的两个点的距离的一半。 输入包含多组数据,每组数据第一行为n,表示点的个数;接下来n行,每行一个点的坐标。当n为0时表示输入结束,每组数据输出一行,为最近的两个点的距离的一半。Sample Input20 01 121 11 13-1.5 00 00 1.50Sample Output0.710.000.75题解: ...原创 2018-06-30 09:51:57 · 321 阅读 · 0 评论 -
pat B 1028 人口普查
作死的选择算年龄,答非所问,不是好习惯,错了都不知哪里错了 - -、、、、、#include <iostream>#include <cstdio>#include <algorithm>#include <cstdlib>using namespace std;struct birth{ char *ch; int a...原创 2018-07-09 22:21:37 · 264 阅读 · 0 评论 -
C/C++ 精度损失下的浮点数比较
等于运算符(==)const double eps = 1e-8;#define Equ(a,b) (fabs((a)-(b))<(eps))大于运算符(>)const double eps = 1e-8;#define More(a,b) (((a)-(b))>(eps))小于运算符(<)const double eps = 1e-8;#define Less(a,...原创 2018-07-03 15:37:14 · 784 阅读 · 0 评论 -
Pat A 1082 Read Number in Chinese
先把最常见的情况写出来,不断在中间加上一些判断条件就可以了。分享一些测试数据:0ling8ba808080808ba Yi ling ba Bai ling ba Wan ling ba Bai ling ba-880808080Fu ba Yi ba Qian ling ba Shi Wan ba Qian ling ba Shi800000008ba...原创 2018-07-18 15:52:32 · 174 阅读 · 0 评论 -
Pat B1024/A1073科学计数法
字符串处理问题,不是很难。#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int MaxVector = 10005;int main(){ char ch[MaxVecto...原创 2018-07-15 15:35:38 · 209 阅读 · 0 评论 -
Pat A1005 Spell It Right
英语单词,不要用string进行存放,用char存放。For example: char str [10][10] = {"zero","one","two","three","four","five","six","seven","eight","nine"};很简单的一道题。#include <原创 2018-07-15 21:27:00 · 226 阅读 · 0 评论 -
排列组合与杨辉三角类比运算
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1原创 2017-05-03 20:48:05 · 1200 阅读 · 0 评论 -
相邻素数对(质数筛选)
请你求出区间 [l,r] 上距离最近的相邻的素数对和距离最远的相邻的素数对。2,3 是相邻的素数,2,5 不是相邻的素数。距离定义为 2 个素数的差的绝对值。比如 2,3 距离为 1。输入格式输入 2 个整数 l,r(1≤l≤r≤9000000)输出格式如果 a, b(a a,b are closest, c,d are most distant原创 2017-05-01 19:27:32 · 2107 阅读 · 0 评论 -
机器人走方格(DP/递归)
题目描述有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。给定两个正整数int x,int y,请返回机器人的走法数目。保证x+y小于等于12。测试数据:2,2返回值:2DP:public class Robot { public int countWays(int x, int y) {原创 2016-07-04 20:46:01 · 1050 阅读 · 0 评论 -
2013第四届蓝桥杯C/C++ C组省赛题解 八题
本题是蓝桥杯往届真题。小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:..$$$$$$$$$$$$$....$...........$..$$$.$$$$$$$$$.$$$$...$.......$...$$.$$$.$$$$$.$$$.$$.$...$...$...$.$$.$.$$$.$.$$$.$.$$.$.$...$...$.$.$$.$.原创 2017-02-25 19:05:54 · 380 阅读 · 0 评论 -
二分快速幂
在a,b为整数时,若 b很大,如 b > 10^25 的时候,我们就要进行优化。如果b是偶数,则可以看作 a^b = (a^(b/2))^2 ,如果b是奇数,则 a^b = (a^(b-1)/2)^2。则有两种方法,一种递归(dfs),一种循环,递归如下:int dfs(int a,int b,int mod){//一般幂次方都比较大 所以添加了一个取模运算。 if原创 2017-05-02 20:11:30 · 276 阅读 · 0 评论 -
二分快速幂应用题
假设有 n 只球,将球排成一排。开始球为白色,我现在想用m种颜色给球分别涂色,如果相邻的球的颜色相同,这 2 个球会消失,问有多少种排列会使球消失。最后答案对 1000000007取模。取两个整数n,m (0样例输入2 2样例输出2样例输入3 4样例输出28代码如下:#include #include using namespace st原创 2017-05-03 19:54:00 · 273 阅读 · 0 评论 -
2016第七届蓝桥杯C/C++ B组省赛题解 H题
2016第七届蓝桥杯C/C++ B组省赛题解 H题原创 2016-04-08 22:26:46 · 723 阅读 · 0 评论 -
2的个数(Number of Digit One 的改编题)
2的个数 时间限制:3秒 空间限制:32768K题目描述请编写一个方法,输出0到n(包括n)中数字2出现了几次。给定一个正整数n,请返回0到n的数字中2出现了几次。测试样例:10返回原创 2016-07-03 09:30:06 · 1365 阅读 · 0 评论 -
2016第七届蓝桥杯C/C++ B组省赛题解 F题
2016第七届蓝桥杯C/C++ B组省赛题解 F题原创 2016-04-08 19:43:10 · 390 阅读 · 0 评论 -
2016第七届蓝桥杯C/C++ B组省赛题解 D题
2016第七届蓝桥杯C/C++ B组省赛题解 D题原创 2016-04-08 09:10:45 · 393 阅读 · 0 评论 -
2016第七届蓝桥杯C/C++ B组省赛题解 B题
2016第七届蓝桥杯C/C++ B组省赛题解 B原创 2016-04-08 00:32:37 · 472 阅读 · 0 评论 -
2016第七届蓝桥杯C/C++ B组省赛题解 A题
2016第七届蓝桥杯C/C++ B组省赛题解 A题原创 2016-04-08 00:19:36 · 469 阅读 · 0 评论 -
POJ 1085 Ants
一道简单的题。原创 2016-04-05 13:36:40 · 228 阅读 · 0 评论 -
二进制插入(白菜题)
题目描述有两个32位整数n和m,请编写算法将m的二进制数位插入到n的二进制的第j到第i位,其中二进制的位数从低位数到高位且以0开始。给定两个数int n和int m,同时给定intj和int i,意义如题所述,请返回操作后的数,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1。测试数据:1024,19,2,6返回值:1100 i j原创 2016-07-05 00:05:38 · 458 阅读 · 0 评论 -
Pat B1033
#include <iostream>#include <cstdio>#include <cstring>using namespace std;int main(){ int in[200]; char scch; memset(in,0,sizeof(int) * 200); scch = getchar...原创 2018-08-15 21:30:52 · 232 阅读 · 0 评论