ACM题目与答案 - J - 图文

输入 8 1 1 3 #include int k=0, n;

int a[10][10]={0};

void yy(int c[], int b[], int w) {

int j, i;

for(i=1;<=n;i++) {

if(b[i]==0&&a[i][w]==0) {

for(j=1;j

if(i-c[j]== w-j||i-c[j]==j-w) if(j

c[w] =i; b[i]=1;

yy(c, b, w+1); b[i]=0;c[w]=0; }

}

} }

int main() {

int b[10]={0}; int m, x,y; int c[10]={0};

scan(\ while(m--){

scanf(\ a[x][y]=1; }

yy(c, b, 1);

printf(\

输出 76 break; return 0; }

回文问题

任意定一个字符单,求量少插入几个字符,会使其成为回文 回文一种对称的字符串 例,” “Ab3bd”可以过入两个字符变成回文,”dAb3bAd\取着\但是插入少于2个的字符无法形成回文 编程任务

任意始定一个字符率,设计一款算法求最少插入几个字符,会使该字符串成为回文 数据输入

轴入数据为一行字符串,其长度L:3<=L<=5000,由’A'to’Z’、’a’to’z’和’0’ to ‘9’组成 数据输出

一个整数,表示量少插入的字符数 输入 Ab3bd 输出 2 #include #include #include #include #include using namespace std; #define MAX 1010 int res[MAX][MAX]; int main() {

int n, i,j;

string str, tmp; cin>>str; temp=str;

reverse(tmp.begin(), tmp.end()); for(i=0; i

for(j=0; j

if(str[i]!=tmp[j]) {

res[i+1][j+1]=max(res[i+1][j],res[i][j+1]); } else {

res[i+1][j+1]=res[i][j+1]; }

} }

printf(\ return 0; }

骑行问题

★问题描述

小马研是一名骑行爱好者。他准备骑行4.5km,从A地出发前往B地

从A地前往B地的路上还有很多的单车一族,假设除小马研外,其他人的速度总是固定的。小马哥现在在A地,他会在那等特一个也是到B地骑行的人,然后跟上他。共且和他同样的这度前往B地。在此期间,如果没有人超过小写哥速度,则小马哥保持速度直到到达目的地,如果有人骑行速度超过小马开井且从小马研身边超过,则小马哥会立即加速跟上速度更快的人,和他一起骑行。 ★编程任务

假设小马哥到达A地时的时是0秒,给你其它骑行者从A点出发时的遠度和时刻, 请你计算小马到达B地时的时。 ★数据输入

每组试据第一行包含一个整数N(1(=N〈1000,豪示从A地到B地劳行的人有N个,接下来N行,每行两个整数V(0Y(=40)和T,表示某个骑行者的这度(km/h)以及该骑行者从A点出发时的时(秒)。每组测试数中保证至少包含一个骑行者的T〉=0 ★数据输出

输出小马哥到达B地时的时刻(秒),向上取整。 输入 4 20 0 25 -155 27 190 30 240 #include using namespace std; struct rider{ int v; int t; double T; }p[2000];

int cmp(rider a, rider b) {

return a.T

int main() {

int n, i,sum;

输出 780 cin>>n;

for(i=0;i

cin>>p[i].v >>p[i].t; if(p[i].t>=0)

p[i].T=(4.5/1.0*p[i].v)*3600+(double)p[i].t); else

p[i].T=0Xffffffff; }

sort(p, p+n, cmp);

if((p[0].T-1.0*(int)p[0].T)==0.0) sum=(int)p[0].T; else

sum=(int)p[0].T+1; cout << sum <

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4