输入 8 1 1 3 #include
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 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 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 <