USTCOJ的水题们

1025 just the facts

http://acm.ustc.edu.cn/ustcoj/problem.php?id=1025


输出n阶乘的最后一位非0数


#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<vector>
#include<algorithm>
#include<map>
#include<cmath>
using namespace std;


#define N 500
#define M 15596035


int main()
{
    //freopen("a","r",stdin);


    int ji,i,n;


    while (scanf("%d",&n)!=EOF)
    {
        ji=1;


        for (i=1;i<=n;i++)
        {
            ji*=i;
            while (ji%10==0) ji/=10;


            ji=ji%100000;//求大神指点这里1000什么的为什么会错
        }


        if (n<10) printf("    %d",n);
        else if (n<100) printf("   %d",n);
        else if (n<1000) printf("  %d",n);
        else if (n<10000) printf(" %d",n);
        else printf("%d",n);


        printf(" -> %d\n",ji%10);
    }


    return 0;
}


1242 bee movie

http://acm.ustc.edu.cn/ustcoj/problem.php?id=1242

最简单的计算几何,枚举计算有多少个三点共线。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<vector>
#include<algorithm>
#include<map>
#include<cmath>
using namespace std;


#define N 500
#define M 15596035


struct point
{
    int x,y;
}p[N];


int b[1000000][3];


double slope(int i,int j)
{
    return (double)(p[j].y-p[i].y)/(double)(p[j].x-p[i].x);
}


int main()
{
    freopen("a","r",stdin);
    int i,j,k,sum,n;


    while (scanf("%d",&n)!=EOF)
    {
        for (i=1;i<=n;i++) scanf("%d%d",&p[i].x,&p[i].y);
        sum=0;


        for (i=1;i<=n-2;i++)
        for (j=i+1;j<=n-1;j++)
        for (k=j+1;k<=n;k++)
        {
            double s1,s2;
            if (p[i].x==p[j].x && p[j].x==p[k].x)
            {
                sum+=1;
                b[sum][0]=i;
                b[sum][1]=j;
                b[sum][2]=k;
                continue;
            }


            s1=slope(i,j);
            s2=slope(j,k);
            if (fabs(s1-s2)<1e-8)//若用乘法来判断斜率相等的话则可避免精度问题
            {
                sum+=1;
                b[sum][0]=i;
                b[sum][1]=j;
                b[sum][2]=k;
            }
        }


        printf("%d\n",sum);
        for (i=1;i<=sum;i++) printf("%d %d %d\n",b[i][0],b[i][1],b[i][2]);
    }


    return 0;
}


USTCOJ 1284 Large bitmap

http://acm.ustc.edu.cn/ustcoj/problem.php?id=1284


#include<cstdio>

#include<iostream>
using namespace std;


struct rec
{
     long long x1;
     long long y1;
     long long x2;
     long long y2;
     int r1,g1,b1;
}r[1005];


int main()
{
    int n,m,i,j,k,t=0,x,y,r2,g2,b2;
    
    while (1)
    {
          cin>>n>>m;
          if ((n==0)&&(m==0)) break;
          t++;
          printf("Case %d:\n",t);
          
          for (i=1;i<=n;i++) cin>>r[i].x1>>r[i].y1>>r[i].x2>>r[i].y2>>r[i].r1>>r[i].g1>>r[i].b1;
          
          for (j=1;j<=m;j++)
          {
              scanf("%d%d",&x,&y);
              r2=g2=b2=255;
              for (i=1;i<=n;i++)
              if ((x>=r[i].x1)&&(x<=r[i].x2)&&(y>=r[i].y1)&&(y<=r[i].y2))
              {
                 r2=r[i].r1;
                 g2=r[i].g1;
                 b2=r[i].b1;
              }            
              printf("%d %d %d\n",r2,g2,b2);                           
          }
          cout<<endl;
    }
    
    return 0;
}


USTCOJ 1234 Calculate the Sum

http://acm.ustc.edu.cn/ustcoj/problem.php?id=1234

输入m n,输出这m的每一位数字对n的每一位数字取余的结果的总和。

统计m、n中1到9出现的次数,然后分别计算1到9取余的结果再乘上数字出现的次数即可。


#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
#define N 1000005

char s1[N],s2[N];
int a[15],b[15];

int main()
{
   // freopen("a","r",stdin);

    int t;
    scanf("%d",&t);
    //gets(s1);
    for (int kk=1;kk<=t;kk++)
    {
        long long sum=0;
        scanf("%s",s1);
        scanf("%s",s2);

        int l3,i,l1,l2;
        l1=strlen(s1);
        l2=strlen(s2);

        for (i=1;i<=9;i++)
        {
            a[i]=0;
            b[i]=0;
        }

        for (i=0;i<l1;i++)
        {
            l3=s1[i]-'0';
            a[l3]++;
        }
        for (i=0;i<l2;i++)
        {
            l3=s2[i]-'0';
            b[l3]++;
        }

        for (i=1;i<=9;i++)
        for (int j=2;j<=9;j++)
        sum+=(i%j)*(a[i]*b[j]);

        printf("%lld\n",sum);
    }

    return 0;
}



1321 Pascal Library

http://acm.ustc.edu.cn/ustcoj/problem.php?id=1321

直接看input output就好。

import java.util.Scanner;

public class Main
{
	public static void main(String[] args)
	{
		Scanner scanner=new Scanner(System.in);
		
		int n,d,i,j;
		while (true)
		{
			n=scanner.nextInt();
			d=scanner.nextInt();			
			if (n==0 && d==0) break;
			
			int[][] a=new int[d+5][n+5];
			
			for (i=1;i<=d;i++)
				for (j=1;j<=n;j++)
					a[i][j]=scanner.nextInt();
			
			for (i=2;i<=d;i++)
				for (j=1;j<=n;j++)
					a[1][j]&=a[i][j];
			
			int sum=0;
			for (j=1;j<=n;j++) sum+=a[1][j];
			
			if (sum>0) System.out.println("yes");
			else System.out.println("no");
		}
	}
}



基于SpringBoot+Vue的社区便民服务平台研究AI更换标1章引言介绍社区便民服务平台的研究背景、意义,以及基于SpringBoot+Vue技术的研究现状和创新点。1.1研究背景与意义分析社区便民服务的重要性,以及SpringBoot+Vue技术在平台建设中的优势。1.2国内外研究现状概述国内外在社区便民服务平台方面的发展现状。1.3研究方法与创新点阐述本文采用的研究方法和在SpringBoot+Vue技术应用上的创新之处。第2章相关理论介绍SpringBoot和Vue的相关理论基础,以及它们在社区便民服务平台中的应用。2.1SpringBoot技术概述解释SpringBoot的基本概念、特点及其在便民服务平台中的应用价值。2.2Vue技术概述阐述Vue的核心思想、技术特性及其在前端界面开发中的优势。2.3SpringBoot与Vue的整合应用探讨SpringBoot与Vue如何有效整合,以提升社区便民服务平台的性能。第3章平台需求分析与设计分析社区便民服务平台的需求,并基于SpringBoot+Vue技术进行平台设计。3.1需求分析明确平台需满足的功能需求和性能需求。3.2架构设计设计平台的整体架构,包括前后端分离、模块化设计等思想。3.3数据库设计根据平台需求设计合理的数据库结构,包括数据表、字段等。第4章平台实现与关键技术详细阐述基于SpringBoot+Vue的社区便民服务平台的实现过程及关键技术。4.1后端服务实现使用SpringBoot实现后端服务,包括用户管理、服务管理等核心功能。4.2前端界面实现采用Vue技术实现前端界面,提供友好的用户交互体验。4.3前后端交互技术探讨前后端数据交互的方式,如RESTful API、WebSocket等。第5章平台测试与优化对实现的社区便民服务平台进行全面测试,并针对问进行优化。5.1测试环境与工具介绍测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值