算法学习
chris_grass
这个作者很懒,什么都没留下…
展开
-
算法竞赛入门经典 习题1-6 偶数(odd)
习题1-6 偶数(odd) 输入一个整数,判断它是否为偶数。如果是,则输出“yes”,否则输出“no”。提示:可以用多种方法判断。#include <iostream>using namespace std;int main(){ int n; cin>>n; if(n==n>>1<<1) cout<<"yes"<<endl; else原创 2017-01-14 22:11:11 · 335 阅读 · 0 评论 -
算法竞赛入门经典 习题1-7 打折(discount)
习题1-7 打折(discount) 一件衣服95元,若消费满300元,可打八五折。输入购买衣服件数,输出需要支付的金额(单位:元),保留两位小数。#include <iostream>#include <iomanip>using namespace std;int main(){ int n; double s; cin>>n; s = n*95;原创 2017-01-14 22:13:24 · 724 阅读 · 0 评论 -
算法竞赛入门经典 习题1-8 绝对值(abs)
习题1-8 绝对值(abs) 输入一个浮点数,输出它的绝对值,保留两位小数。#include <iostream>#include <iomanip>using namespace std;int main(){ double a; cin>>a; if(a<0) a = -a; cout<<fixed<<setprecision(2)<<a原创 2017-01-14 22:14:44 · 454 阅读 · 0 评论 -
算法竞赛入门经典 习题1-9 三角形(triangle)
习题 1-9 三角形(triangle) 输入三角形三边长度值(均为正整数),判断它是否能成为直角三角形的三个边长。如果可以,则输出“yes”,如果不能,则输出“no”。如果根本无法构成三角形,则输出“not a triangle”。#include <iostream>using namespace std;int main(){ int a,b,c,t; cin>>a>>原创 2017-01-14 22:18:05 · 490 阅读 · 0 评论 -
算法竞赛入门经典 习题1-10 年份(year)
习题1-10 年份(year) 输入年份,判断是否为闰年。如果是,则输出“yes”,否则输出“no”。提示:简单地判断除以4的余数是不够的。#include <iostream>using namespace std;int main(){ int n; cin>>n; if(n%400==0||(n%4==0&&n%100!=0)) cout<<"y原创 2017-01-14 22:20:01 · 335 阅读 · 0 评论 -
算法竞赛入门经典 第三章 学习笔记
例题3-1 开灯问题#include using namespace std;signed char light[1000+10];int main(){ int i,j,n,k; cin>>n>>k; for(i=0;i1000+10;i++) light[i] = -1; for(i=1;i<=k;i++) {原创 2017-01-14 21:59:15 · 300 阅读 · 0 评论 -
算法竞赛入门经典 习题3-1 分数统计(stat)
习题3-1 分数统计(stat) 输入一些学生的分数,哪个分数出现的次数最多?如果有多个并列,从小到大输出。 任务1:分数均为不超过100的非负整数。 任务2:分数均为不超过100的非负实数,但最多保留两位小数。 题目说的并不是很清楚啊,我就自己定了个格式。先输入一个n,后面接n个分数。任务一和任务二一个整数一个实数,没看出有什么区别,就数组类型不一样吧。可能有什么我没想到的。 我的代码:原创 2017-01-15 22:38:05 · 2185 阅读 · 0 评论 -
算法竞赛入门经典 习题3-2 单词的长度(word)
习题3-2 单词的长度(word) 输入若干个单词,输出它们的平均长度。单词值包含大写字母和小写字母,用一个或多个空格隔开。 我的代码:#include <iostream>#include <cstring>#include <cctype>using namespace std;char buf[1000];int main(){ int n=0,l=0,i; b原创 2017-01-15 22:50:17 · 1478 阅读 · 0 评论 -
poj 3984
dfs入门题#include <iostream>using namespace std;void print(int);int map[5][5];struct pos{ int x,y; int pre;};pos list[200];int dy[4] = {1,-1,0,0};int dx[4] = {0,0,1,-1};int main(){ i原创 2017-01-31 12:50:25 · 263 阅读 · 0 评论 -
poj 1190
先打表然后dfs加剪枝#include <iostream>using namespace std;int ans=0;int N,M;int minv[20];int mins[20];void dfs(int m,int v,int s,int h,int r){ int i,j,t; if(m==0) { if(ans>s&&v==N)原创 2017-01-31 15:29:46 · 287 阅读 · 0 评论 -
poj1651
Multiplication Puzzle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9677 Accepted: 6013Description The multiplication puzzle is played with a row of cards, each containing a si原创 2017-03-20 21:17:15 · 375 阅读 · 0 评论 -
整数用pow要小心啊。。
今天写个程序,结果总是和正确答案相差1,百思不得其解,只好一步步缩小范围排查,最后发现居然是pow中整数的问题。 例如如下代码:#include <iostream>#include <cmath>using namespace std;int main(){ cout<<(int)pow(7,7)<<endl; cout<<(int)pow(7.0,7)<<endl;原创 2017-03-23 18:06:00 · 10396 阅读 · 2 评论 -
poj 2431 解题记录
题意给出加油站的位置和油量,以及目前卡车的位置和现有油量,假设卡车的油箱无限大,问最少要加多少次油可以到达终点?思路要让我来想这道题估计是想不出来的,我是看了《挑战程序设计》这本书,里面提到了这道题的思路。思路需要做一个转换,本来是先决定加不加油,然后导致结果油够不够用,这种思路要转换成看有够不够用,来决定之前加不加油。。要直接想还有点难度代码我写了两个练手,一个是用的stl的优先队列,另外是自己手原创 2017-12-20 03:06:02 · 323 阅读 · 0 评论 -
算法竞赛入门经典 习题1-5 距离(distance)
习题1-5 距离(distance) 输入4个浮点数x1,y1,x2,y2,输出平面坐标系中点(x1,y1)到点(x2,y2)的距离。#include <iostream>#include <cmath>using namespace std;int main(){ double x1,x2,y1,y2; cin>>x1>>y1>>x2>>y2; cout<<sqr原创 2017-01-14 22:08:44 · 467 阅读 · 0 评论 -
算法竞赛入门经典 习题1-4 正弦和余弦 (sincos)
输入正整数n(n<360),输出n度的正弦、余弦函数值。提示:使用数学函数。#include <iostream>#include <cmath>using namespace std;int main(){ int n; const double PI = 3.14159265; cin>>n; cout<<sin(n/180.*PI)<<' '<<cos(原创 2017-01-14 22:07:10 · 479 阅读 · 0 评论 -
算法竞赛入门经典 习题2-9 分数化小数(decimal)
习题2-9 分数化小数(decimal) 输入正整数a,b,c,输出a/b的小数形式,精确到小数点后c位。a,b<=10^6,c<=100。例如a=1,b=6,c=4是应输出0.1667. 我的代码:#include <stdio.h>#include <math.h>int main(){ int a,b,c,i,d; scanf("%d%d%d",&a,&b,&c);原创 2017-01-13 14:03:23 · 1191 阅读 · 0 评论 -
算法竞赛入门经典 习题2-2 水仙花数(daffodil)
习题2-2 水仙花数(daffodil) 输出100-999中的所有水仙花数。若3位数ABC满足ABC=A^2+B^2+c^2,则称其为水仙花数。例如153=1^3+5^3+3^3,所以153是水仙花数。 我的代码:#include <iostream>using namespace std;int main(){ int a,b,c; for(a=1;a<10;a++)原创 2017-01-13 14:21:26 · 359 阅读 · 0 评论 -
算法竞赛入门经典 习题2-1 位数(digit)
习题2-1 位数(digit) 输入一个不超过10^9的正整数,输出它的位数。例如12735的位数是5。请不要使用任何数学函数,只用四则运算和循环语句实现。 我的代码:#include <iostream>using namespace std;int main(){ int n,j=10,i; cin>>n; for(i=1;i<=9;i++) {原创 2017-01-13 14:10:33 · 350 阅读 · 0 评论 -
算法竞赛入门经典 习题2-4 倒三角形(triangle)
习题2-4 到三角形(triangle) 输入正整数n<=20,输出一个n层的到三角形。例如n=5时输出如下: ######### ####### ##### ### # (大概就像上面这个样子吧,Markdown不太好打空格,所以这个倒三角是歪的) 我的代码:#include <iostream>using namespace std;int main()原创 2017-01-13 14:46:19 · 1010 阅读 · 0 评论 -
算法竞赛入门经典 习题2-5 统计(stat)
习题2-5 统计(stat) 输入一个正整数n,然后读取n个正整数a1,a2,…an,最后再读一个正整数m。统计a1,a2,…,an中有多少个整数的值小于m。提示:如果重定向和fopen都可以使用,哪个比较方便? 我的代码: 无。。。由于还只是第二章,没有将数组,指针。。只能使用基本语句,我实在是想不出来应该怎么写。有人会的话还请在评论多多指教(我觉得可能作者把这道题放错地方了,看网上的都是用原创 2017-01-13 20:07:30 · 442 阅读 · 0 评论 -
算法竞赛入门经典 习题2-6 调和级数(harmony)
习题2-6 调和技术(harmony) 输入正整数n,输出H(n)=1+1/2+1/3+…+1/n的值,保留3位小数。例如n=3时答案为1.833。 我的代码:#include <iostream>#include <iomanip>using namespace std;int main(){ int n,i; double sum = 0; cin>>n;原创 2017-01-13 20:19:18 · 610 阅读 · 0 评论 -
算法竞赛入门经典 习题2-7 近似计算(opproximation)
习题2-7 近似计算(opproximation) 计算PI/4 = 1-1/3+1/5-1/7+…,知道最后一项小于10^-6。 我的代码:#include <iostream>using namespace std;int main(){ int i=1; double a=1,sum=0; while(a>=1e-6) { if(i%2原创 2017-01-13 20:26:57 · 287 阅读 · 0 评论 -
算法竞赛入门经典 习题2-8 子序列的和(subsequence)
习题2-8 子序列的和(subsequence) 输入两个正整数n#include <iostream>#include <iomanip>using namespace std;int main(){ double m,n,i,sum=0; cin>>n>>m; for(i=n;i<=m;i++) { sum += 1/(i*i); }原创 2017-01-13 20:49:13 · 535 阅读 · 0 评论 -
算法竞赛入门经典 习题2-10 排列(permutation)
习题2-10 排列(permutation) 用1,2,3,…,9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.输出所有解。提示:不必太动脑筋。 我的代码:#include <iostream>using namespace std;int main(){ int a,b,c,d,e,f,g,h,i,j; int ch,原创 2017-01-13 21:22:32 · 660 阅读 · 0 评论 -
算法竞赛入门经典 习题1-1 平均数(average)
习题1-1 平均数(average) 输入3个整数,输出它们的平均数,保留3位小数。#include <iostream>#include <iomanip>using namespace std;int main(){ int a,b,c; cin>>a>>b>>c; cout<<fixed<<setprecision(3)<<(a+b+c)/3.<<endl;原创 2017-01-14 22:01:41 · 417 阅读 · 0 评论 -
算法竞赛入门经典 习题1-2 温度(temperature)
习题1-2 温度(temperature) 输入华氏温度f,输出对应的摄氏温度c,保留3位小数。提示:c=5(f-32)/9。#include <iostream>#include <iomanip>using namespace std;int main(){ double f; cin>>f; cout<<fixed<<setprecision(3)<<5*(f原创 2017-01-14 22:03:40 · 434 阅读 · 0 评论 -
算法竞赛入门经典 习题1-3 连续和(sum)
输入正整数n,输出1+2+……+n的值。提示:目标是解决问题,而不是练习编程。#include <iostream>using namespace std;int main(){ int n; cin>>n; cout<<(1+n)*n/2<<endl; return 0;}原创 2017-01-14 22:05:17 · 341 阅读 · 0 评论 -
codeforces round#452 div2 解题记录
A - Splitting in Teams题意一串由1和2组成的序列,1表示1个可以任意组队的队员,2表示两个必须组在一个队的单元,问最多可以组成多少个队伍(每个队三个人)思路显然,三个人的队伍要不是1+2,要不就是1+1+1.因为要求队伍数量尽可能的多,所以要优先1+2,剩下的再1+1+1即可代码(AC)#include <iostream>using namespace std;int m原创 2017-12-18 05:49:16 · 354 阅读 · 0 评论