1、第一章1.计算 A+B 的值:#includeint main() int a,b;cinab;coutmax)max = arri;System.out.println(max);第二章1.士兵站队问题在一个划分成网格的操场上,n 个士兵散乱地站在网格点上。网格点由整数坐标(x,y) 表示。士兵们可以沿网格边上、下、左、右移动一步,但在同一时刻任一网格点上只能有一名士兵。按照军官的命令,士兵们要整齐地列成一个水平队列,即排列成 (x,y),(x+1,y),(x+n-1,y)。如何选择 x 和 y的值才能使士兵们以最少的总移动步数排成一列。计算使所有士兵排成一行需要的最少移动步数。输入:第 1
2、 行是士兵数 n,1?n?10000。接下来 n 行是士兵的初始位置,每行 2 个整数 x 和 y,-10000=x,y =10000。输出:第1 行中的数是士兵排成一行需要的最少移动步数。#include#include#includeusing namespace std;int main() int n;int x10000,y10000,z10000;while(cinn) for(int i=0;ixiyi;sort(x,x+n);sort(y,y+n);int midy=y(n+1)/2-1;for(int i=0;iusing namespace std;const int M=
3、100;int n;int aMM;int func()int i,j;for(i=n-1;i=1;i-)for(j=1;jai+1j+1) aij+=ai+1j;else aij+=ai+1j+1; return a11;int main() int i,j,max;cinn;for(i=1;iaij;max=func();cout #define SIZE 1010 int main() int i, j, n, top, temp; int sSIZE; scanf(“%d“, top = 0; s0=-1; for (i = 0; i stop) s+top = temp; else
4、int low = 1, high = top; int mid; while(low 1; if (tempsmid) low = mid + 1; else high = mid - 1; slow = temp; printf(“%dn“,top); return 0; 第四章1.会场安排问题:假设要在足够多的会场里安排一批活动,并希望使用尽可能少的会场。设计一个有效的贪心算法进行安排。 (这个问题实际上是著名的图着色问题。若将每一个活动作为图的一个顶点,不相容活动间用边相连。使相邻顶点着有不同颜色的最小着色数,相应于要找的最小会场数。) 对于给定的 k 个待安排的活动,计算使用最少会场
5、的时间表。输入:第一行有1 个正整数 k,表示有 k 个待安排的活动。接下来的 k 行中,每行有 2个正整数,分别表示 k 个待安排的活动开始时间和结束时间。时间以0点开始的分钟计。输出最少会场数。#include #include using namespace std;int a10001,b10001; int main()int n,i,j=0; int count=0;cinn;for(i=0;iaibi; sort(a,a+n);sort(b,b+n); for(i=0;i int main() int n,i,k; int j,flag; int a10001; int sum,
6、p; while(scanf(“%d%d“,i#define MAX 1000;int n,c2121,v21,s,total; void backtrack(int i,int total) int j;if(total=s)return;if(in)s=total;return;elsefor(j=1;jint n,c,bestp;int p10000,w10000,x10000,bestx10000;void Backtrack(int i,int cp,int cw) int j;if(in) if(cpbestp) bestp=cp;for(i=0;i=n;i+) bestxi=xi; else for(j=0;j=1;j+) xi=j;if(cw+xi*wi=c) cw+=wi*xi;cp+=pi*xi;Backtrack(i+1,cp,cw);cw-=wi*xi;cp-=pi*xi; int main() int i;bestp=0; scanf(“%d“,scanf(“%d“,for(i=1;i=n;i+) scanf(“%d“,for(i=1;i=n;i+) scanf(“%d“,Backtrack(1,0,0);printf(“%dn“,bestp); return 0;