1、ASCII
#include<stdio.h>int main(){
char ch;
int a=0,b=0;
while((ch=getchar())!=EOF)
{
if(b==0)
{
printf("%05X",a);
printf(" %02X",ch);
}
if(b!=0&&b<16)
{
printf(" %02X",ch);
}b++;
if(b==16)
{
b=0;
a++;
printf("\n");
}
} }
2、染色
#include<stdio.h>int a[105],b[105];int main(){
int t,m,n,k;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&m,&n,&k);
int x,y;
int visa=0,visb=0;
for(int i=0;i<105;i++)
{
a[i]=0;
b[i]=0;
}
while(k--)
{
scanf("%d%d",&x,&y);
if(a[x]==0)
{
a[x]=1;
visa++;
}
if(b[y]==0)
{
b[y]=1;
visb++;
}
}
printf("%d\n",m*n-visa*visb);
}
return 0;}
3、Bob’s Password
#include<stdio.h>#include<string.h>#include<stdlib.h>#include <iostream>using namespace std;int main(){
int t;
scanf("%d",&t);
int a[9][9]={
0,1,0,1,1,1,0,1,0,
1,0,1,1,1,1,1,0,1,
0,1,0,1,1,1,0,1,0,
1,1,1,0,1,0,1,1,1,
1,1,1,1,0,1,1,1,1,
1,1,1,0,1,0,1,1,1,
0,1,0,1,1,1,0,1,0,
1,0,1,1,1,1,1,0,1,
0,1,0,1,1,1,0,1,0};
int b[100];
while(t--){
string s;
cin>>s;
int flag = 1;
int len = s.length();
memset(b,0,sizeof(b));
for(int i = 0;i < len-1;i++){
if(a[s[i]-'1'][s[i+1]-'1']==1){
b[s[i]-'1'] = 1;
}
else{
if(b[(s[i]+s[i+1]-2*'1')/2]==1)
{
b[s[i]-'1'] = 1;
}
else
{
flag = -1;
break;
}
}
}
if(flag==1)
puts("Yes");
else
puts("No");
}}
4、Alice and Bob
输入
第一行输入一个整数K,表示游戏的次数。 以后每两行表示一个样例,第一行是Alice骰子的点数。第二行是Bob骰子的点数。
输出
如果是Alice赢,输出"Alice",如果是Bob赢,输出"Bob",否则输出"Draw"。
#include <stdio.h>
int main()
{
int ct;
scanf("%d",&ct);
while(ct--)
{
int a,b,c,k=2,A=0,B=0,cot=0;
while(k--){
scanf("%d %d %d",&a,&b,&c);
int ai=a,bi=b,ci=c;
if(a==1) a=16;
if(b==1) b=16;
if(c==1) c=16;
if(a==b&&b==c)
{
cot=a*1000;
}
else if(a==b)
{
cot=a*100+c;
}
else if(a==c)
{
cot=a*100+b;
}
else if(b==c)
{
cot=b*100+a;
}
else
{
cot=ai+bi+ci;
}
if(k==1)
A=cot;
else
B=cot;
}
if(A>B)
printf("Alice\n");
else if(A<B)
printf("Bob\n");
else
printf("Draw\n");
}
return 0;
}
5、矩阵转置就是把原矩阵A的所有元素aij转成矩阵B的bji。 现实中,大部分的矩阵都是稀疏的,所以,存储矩阵时,我们可以只存储存储每个非零元素的坐标和值,并且按行优先排序。
#include <stdio.h>
int a[10001], b[10001], c[10001];
int va[10001], vb[10001], vc[10001];
int main()
{
int t;
scanf("%d", &t);
while (t--)
{
int n, m, k,i,j;
scanf("%d%d%d", &n, &m, &k);
for (i = 0; i < k; ++i)
scanf("%d%d%d", &a[i], &b[i], &c[i]);
int t = 0;
for (i = 0; i < m; ++i) {
for (j = 0; j < k; ++j) {
if (b[j] == i) {
va[t] = b[j];
vb[t] = a[j];
vc[<