算法竞赛入门经典

以下是为您整理出来关于【算法竞赛入门经典】合集内容,如果觉得还不错,请帮忙转发推荐。

【算法竞赛入门经典】技术教程文章

算法竞赛入门经典 例题3-6【代码】

UVa01584 Circular Sequence 找DNA序列的最小字典序。 #include <iostream> #include <string>using namespace std;void smallest(const string &strDNA) {size_t pos = 0;for (size_t i = 1; i < strDNA.size(); i++){string str1 = strDNA.substr(i) + strDNA.substr(0, i);string str2 = strDNA.substr(pos) + strDNA.substr(0, pos);if (str1 < str2){pos = i;}}cout << strDNA.substr(pos) + strDNA.substr(0, pos) << endl; ...

算法竞赛入门经典 习题3-1【代码】

UVa01585 Score #include <iostream> #include <string>using namespace std;int main() {int n = 0;cin >> n;string strAns;for (int i = 0; i < n; i++){cin >> strAns;int consecutive = 0, score = 0;for (auto c : strAns){if (c == 'O'){score++;score += consecutive;consecutive++;}else if(c == 'X'){consecutive = 0;}}cout << score << endl;}return 0; } /* 5 OOXXOXXOOO OOXXOOXXOO OXOXOXOXOXOXOX OOOOOOOOOO OOOOXO...

《算法竞赛入门经典(第2版)》第三章习题题解【代码】

《算法竞赛入门经典》习题源码 Github开源:https://github.com/RyanHe123/Classic-Introduction-to-Algorithmic-Competition 本文中的习题题解为本人完成,如果存在错误或可以改进的地方,欢迎在评论区提出,谢谢! 习题3-1 得分(ACM/ICPC Seoul 2005,UVa1585) 给出一个由O和X组成的串(长度为1~80),统计得分。每个O的得分为目前连续出现的O的个数,X的得分为0。例如:OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3。 #include<std...

算法竞赛入门经典(第二版)3-7DNA序列UVA1368【代码】

一开始题意理解错了,做了很久,有点费劲 https://vjudge.net/problem/UVA-1368#include<stdio.h> #include<string.h> int main() {int t;scanf("%d",&t);while(t--) {int m,n,sum=0;scanf("%d%d",&m,&n);while(m<4||m>50||n<4||n>1000){printf("input again\n");scanf("%d%d",&m,&n);}char a[m][n];//二维数组保存输入的DNA序列 for(int x=0;x<m;x++){scanf("%s",a[x]);//gets(a[i]);不行 第一行数组获取不到 }printf("最优解为\n...

算法竞赛入门经典(第二版)3-5谜题UVA277【代码】

#include <stdio.h> #include <string.h> #define maxn 5 char a[maxn][maxn]; char b[100]; int flag=0;// int main() {while(1){int num=0, blank_x,blank_y;while(num<5){gets(a[num]);num++;} printf("test\n");int x=0;//int y=0不能在这里定义,原因?? while(x<5){int key=0,y=0;while(y<5){ if(a[x][y]== ){blank_x=x;blank_y=y;key=1;break; }y++;}if(key==1) {break;}x++;}printf("[%d][%d]--\n",blank_x,...

算法竞赛入门经典(第二版)3-11换低挡装置UVA-1588【代码】【图】

这题想了好久啊!!!还各种小细节出错,我太菜了,要更加努力才行 这回要把解题思路写一写,不然估计过几天就忘了 解题思路: 长条固定,移动短条去匹配长条,有三种情况 第一种,在短条在长条范围内移动匹配 第二种,短条在长条的左边移动匹配 第三种,短条在长条右边,与左边的情况同理,右移到0与5相等的位置停止匹配 实现代码#include<stdio.h> #include<string.h> #include <stdlib.h> #define maxn 100int match(int b...

算法竞赛入门经典P35【代码】【图】

#2-4 以标志 0 0结尾的格式输入模板#include<iostream> using namespace std; int main() {int a,b;while(cin>>a>>b){if(a==0&&b==0)break;cout<<a+b<<endl;}return 0; }//2-4 #include <bits/stdc++.h> using namespace std; double arr[100]; int main() {long long a,b;double sum=0,num=0;while(cin>>a>>b){num++;if(a==0&&b==0){break;}while(true){if(a==b+1){cout<<"Case"<<num<<":";cout<<fixed<<setprecision(5)<<sum<<en...

算法竞赛入门经典——数组和字符串【代码】

算法竞赛入门经典——数组和字符串 注意点: 1.比较大的数组应尽量声明在main函数外,否则程序可能无法运行。 2.C语言的数组并不是“一等公民”,而是“受歧视”的。例如,数组不能够进行赋值操作,如果声明“int a[maxn],b[maxn]”,是不能赋值b=a的。如果要从数组a复制k个元素到数组b,可以这样做:memcpy(b,a,sizeof(int)*k)。当然,如果数组a和b都是浮点型的,复制时要写成“memcpy(b,a,sizeof(double)*k)”,另外需要注意的是...

算法竞赛入门经典 第3章 数组和字符串 学习笔记 1【代码】

算法竞赛入门经典 第3章 数组和字符串 学习笔记 第一篇 数组 逆序输出 #include<iostream> using namespace std; #define maxn 105 //在算法竞赛中,常常难以精确计算出需要的数组大小,数组一般会声明得稍 大一些。在空间够用的前提下,浪费一点不会有太大影响。 int a[maxn]; int main() {int x;int n=0;while(cin>>x){a[n++]=x; //a[n++]=x,它做了两件事:首先赋值a[n]=x,然后执行n=n+1。 }for(int i=n-1;i>=1;i--){c...

算法竞赛入门经典第二版第一章习题-(练习Java和C++语法)【代码】

习题1-1 平均数(average) 输入三个整数,输出他们的平均值,保留三位小数 Java:package suanfa;import java.util.Scanner;public class T1_1 {public static void main(String[] args) {float a,b,c;float aver = 0;Scanner reader = new Scanner(System.in);a = reader.nextFloat();b = reader.nextFloat();c = reader.nextFloat();aver = (a+b+c)/3;String.format("%.3f", aver);System.out.println("The answer is " + aver);...