https://www.luogu.com.cn/problem/P1789
#include
int main(){
int n, a[105][105] = {0}, x,y, m, k;
scanf("%d%d%d",&n,&m,&k);
for(int i=0; i<m; i++) {
scanf("%d%d",&x,&y);
for(int j=x-2;j<=x+2;j++) if(j>=0) a[j][y]=1; //火把
for(int j=y-2;j<=y+2;j++) if(j>=0) a[x][j]=1;
a[x-1][y-1]=1;
a[x-1][y+1]=1;
a[x+1][y-1]=1;
a[x+1][y+1]=1;
}
for(int i=0;i<k;i++) //萤石
{
scanf("%d%d",&x,&y);
for(int p=x-2;p<=x+2;p++)
{
for(int q=y-2;q<=y+2;q++)
{
if(p>=0&&q>=0) a[p][q]=1;
}
}
}
int ans=0;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(a[i][j]==0) ans++;
}
}
printf("%d",ans);
return 0;
}
https://www.luogu.com.cn/problem/P1830
#include
int main(){
int n,m,x,y;
scanf("%d%d%d%d",&n,&m,&x,&y);
struct bomb{
int time;
int last;
}
a[105][105];
for(int i=0;i<x;i++){
int x1,y1,x2,y2;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
int time=0,last=0;
for(int p=x1;p<=x2;p++)
for(int q=y1;q<=y2;q++){
a[p][q].time++;
a[p][q].last=i+1;
}
}
for(int i=0;i<y;i++){
int p,q;
scanf("%d%d",&p,&q);
if(a[p][q].time==0)
printf("N\n");
else
printf("Y %d %d\n",a[p][q].time,a[p][q].last);
}
}
https://www.luogu.com.cn/problem/P2006
#include
#define BOOL int
#define TRUE 1
#define FALSE 0
int main()
{
int power=0, m=0, boss=0;
scanf("%d%d%d", &power, &m , &boss);
BOOL flag = FALSE;//开一个布尔变量,如果模拟完了flag的值还是false的话就表明当前没有任何的一个技能能够打败boss,那么就输出-1,否则,如果flag的值为true的话就表明当前至少有一个招数可以打败boss
for(int i=1;i<=m;i++)
{
int cost=0 ,hurt=0;//第i个技能耗费的法力值,第i个技能可以造成的对boss的伤害值
scanf("%d%d", &cost,& hurt);//读入第i个技能耗费的法力值和可以造成的对boss的伤害值
if(cost!=0)//这是为了预防除数为0的判断
{
int ans=(power/cost)*hurt;//ans表示只用这个技能最多能够对这个boss产生多少的伤害值
if(ans >= boss)//如果能够杀死这个boss
{
printf("%d ",i);//那么就去输出这个技能的编号
flag=TRUE;//标记一下
}
}
else if(cost==0 && hurt!=0)//否则如果除数为0(即第i个技能可以放无限次,“第i个技能”也可以称作“编号为i的这个技能”)
{
printf("%d ",i);//输出它的编号
flag=TRUE;//标记一下
}
}
if(flag==FALSE)//如果模拟完了flag的值还是false的话就表明当前没有任何的一个技能能够打败boss
{
printf("-1");
}
return 0;
}
https://www.luogu.com.cn/problem/P2084
#include
#include
int main(void)
{
int i,jz,j;
char n[1005];
scanf("%d%s",&jz,n);
for(i=0,j=strlen(n)-1;j>=0;i++,j--) //i是为了指向每一位数,j是为了输出所在位置
{
if(i!=0&&n[i]!='0')
printf("+"); //判断是否第一项,不是,输出加号。当然如果系数为零也不需要输出 ,从右向左判断
if(n[i]!='0') //从右向左判断
printf("%c*%d^%d",n[i],jz,j);//判断系数是否为零,不是,输出
}
}
https://www.luogu.com.cn/problem/P2676
#include
int main()
{
long long N,B,sum=0,num=0;
scanf("%lld%lld",&N,&B);
long long data[N];
long long i,j;
for(i = 0;i < N;i ++)
{
scanf("%lld",&data[i]);
}
for(i = 0;i < N;i ++)
{
for(j = 0;j < N - 1 - i;j++)
{
if(data[j] > data[j+1])
{
long long temp;
temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
}
}
for(i=N-1;i>0;i--)
{
sum+=data[i];
num++;
if(sum>=B)break;
}
printf("%d",num);
return 0;
}
https://www.luogu.com.cn/problem/P2956
#include
int a[245][245],X,Y,I,cnt,i,j;
int main(){
scanf("%d%d%d",&X,&Y,&I);//地长,地宽,指令数
int x1,y1,x2,y2;
while(I--)
{
scanf("%d %d %d %d",&x1,&y1,&x2,&y2);//输入起点和终点数据
for(i=x1;i<=x2;i++)
{
for(j=y1;j<=y2;j++)
a[i][j]=1;
}
}
for(i=1;i<=X;i++)
{
for(j=1;j<=Y;j++)
{
if(a[i][j]==1) cnt++;
}
}
printf("%d",cnt);
return 0;
}
}
https://www.luogu.com.cn/problem/P3717
#include
#include
int num[123][123] = {0};
int main(void)
{
int n, m, r, x, y,i,j,count = 0;
scanf("%d %d %d",&n,&m,&r);
while(m--)
{
scanf("%d %d",&x,&y);
for( i = 1; i <= n; i++)
for( j = 1; j <= n; j++)
{
double d = sqrt((x - i) * (x - i) + (y - j) * (y - j)); //两点间距离
if(d <= r) num[i][j]++;
}
}
for( i = 1; i <= n; i++)
for( j = 1; j <= n; j++)
if(num[i][j] > 0) count++;
printf("%d",count);
}
https://www.luogu.com.cn/problem/P3742
#include
int main()
{
int n, i;
char x[101], y[101];
scanf("%d", &n);
scanf("%s%s", x, y);
for(i=0;i<n;i++)
{
if(x[i]<y[i])
{
printf("-1");
return 0;
}
}
printf("%s",y);
return 0;
}
https://www.luogu.com.cn/problem/P4326
#include
#include
#define p 3.1415926535898
int main()
{
double r;
scanf("%lf",&r);
printf("%.6lf\n%.6lf\n",p*r*r,r*r*2);
}
https://www.luogu.com.cn/problem/P4327
#include
using namespace std;
int len1, len2, i = 3, j = 1;
char a[20], b[10][100], c;
int main() {
cin >> a;
len1 = strlen(a); //输入字符的长度
len2 = 4 * len1 + 1; //输出字符的长度
memset(b, '.', sizeof(b)); //将b全赋为.
while (i <= len2) {
b[3][i] = a[j - 1];
if (j % 3 == 0)
c = '*';
else
c = '#'; //若为3的倍数,则用*,若不是,则为#
b[1][i] = c;
b[5][i] = c;
b[2][i - 1] = c;
b[2][i + 1] = c;
b[4][i - 1] = c;
b[4][i + 1] = c; //根据字母的位置推出其他字符的位置,并填入b数组中
if (b[3][i - 2] != '*')
b[3][i - 2] = c;
if (b[3][i + 2] != '*')
b[3][i + 2] = c; //若以被*覆盖,则不能被#覆盖
i += 4;
j++;
}
for (int i = 1; i <= 5; i++) {
for (int j = 1; j <= len2; j++)
cout << b[i][j];
cout << endl;}
}
https://www.luogu.com.cn/problem/P5704
#include
int main(void)
{
char n;
scanf("%c",&n);
n=n-32;
printf("%c",n);
}
https://www.luogu.com.cn/problem/P5706
#include
int main()
{
int n;
double t;
scanf("%lf %d",&t,&n);
printf("%.3lf\n",t/(n*1.0));
printf("%d\n",2*n);
}
https://www.luogu.com.cn/problem/P5718
#include
int main(void)
{
int n,i,min,a[1005];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
min=a[0];
for(i=1;i<n;i++)
{
if(min>a[i])
{
min=a[i];
}
}
printf("%d",min);
}
https://www.luogu.com.cn/problem/P5725
#include
int main(void)
{
int n,i,j,num=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(num<10)
{
printf("0%d",num);
}
else{printf("%d",num);}
num++;
}printf("\n");
}printf("\n");
num=1;
for(i=1;i<=n;i++)
{
for(j=1;j<=(n-i);j++)
{
printf(" ");
}
for(j=n-i+1;j<=n;j++)
{
if(num<10){
printf("0%d",num);
}
else
{
printf("%d",num);
}num++;
}printf("\n");
}printf("\n");
}
https://www.luogu.com.cn/problem/P5731
#include
int a[15][15];
int main()
{
int n,mark=1,x=1,y=0;
scanf("%d",&n);
while (mark<=n*n)
{
while(y+1<=n&&a[x][y+1]==0)a[x][++y]=mark++;
while(x+1<=n&&a[x+1][y]==0)a[++x][y]=mark++;
while(y-1>=1&&a[x][y-1]==0)a[x][--y]=mark++;
while(x-1>=1&&a[x-1][y]==0)a[--x][y]=mark++;
}
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
{
printf("%3d",a[i][j]);
}
printf("\n");
}
return 0;
}
https://www.luogu.com.cn/problem/P5734
#include
#include
char temp[1000];
int main()
{
char str[1000];
char str1[105];
int q,m;
int a,b;
int k;
scanf("%d",&q);
scanf("%s",str);
for(int i=0;i<q;i++)
{
scanf("%d",&m);
if(m==1)//后接插入,在文档后面插入字符串str1,并输出文档的字符串;
{
scanf("%s",str1);
strcat(str,str1);//char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。
printf("%s\n",str);
}
else if(m==2)//截取文档部分,只保留文档中从第 a 个字符起 b 个字符,并输出文档的字符串
{
scanf("%d%d",&a,&b);
str[a+b]='\0';
strcpy(temp, &str[a]);//char *strcpy(char *dest, const char *src) 把 src 所指向的字符串复制粘贴到 dest。
//需要注意的是如果目标数组 dest 不够大,而源字符串的长度又太长,可能会造成缓冲溢出的情况.
strcpy(str, temp);
printf("%s\n",str);
}
else if(m==3)
{//插入片段,在文档中第a 个字符前面插入字符串 str,并输出文档的字符串;
scanf("%d%s",&k,temp);
strcat(temp,&str[k]);
str[k]='\0';//在字符串最后加一个0字符,表示字符串的结束。
strcat(str, temp);
printf("%s\n",str);
}
else if(m==4)//查找子串,查找字符串str,在文档中最先的位置并输出;如果找不到输出 −1
{
int flag=0;
char s[1000]={0};
scanf("%s",temp);
for(int i=0;str[i]!='\0';i++)
{
if(str[i]==temp[0])
{
for(int j=0;j<strlen(temp);j++)
{
s[j]=str[i+j];
}
if(strcmp(s,temp)==0)//功能:比较字符串s和temp。一般形式:strcmp (字符串1,字符串2)当s
{
printf("%d\n",i);
flag++;
break;
}
}
}
if(!flag) printf("-1\n");
}
}
}
https://www.luogu.com.cn/problem/P5737
#include
int main(void)
{
int x,y,i,t,num=0;
while(scanf("%d %d",&x,&y)!=EOF)
{
if(x>y)
{
t=x;
x=y;
y=t;
}
for(i=x;i<=y;i++)
{
if((i%4==0&&i%100!=0)||i%400==0)
{
num++;
}
}
printf("%d \n",num);
for(i=x;i<=y;i++)
{
if((i%4==0&&i%100!=0)||i%400==0)
{
printf("%d ",i);
}
}
}
printf("\n");
}
# P5739 【深基7.例7】计算阶乘
>https://www.luogu.com.cn/problem/P5739
```c
#include
#include
long long jie_cheng(int n);
int main()
{
int num;
long long y;
scanf("%d",&num);
y=jie_cheng(num);
printf("%lld\n",y);
return 0;
}
long long jie_cheng(int n)
{
long long fValue;
if(n<0) exit(-1);
if(n>=0)
{
if(n==0||n==1) fValue=1;
else fValue=n*jie_cheng(n-1);
}
return fValue;
}