首页 > 其他分享 >HDOJ1799 循环多少次?

HDOJ1799 循环多少次?

时间:2023-04-05 11:06:09浏览次数:43  
标签:arr scanner int Scanner 循环 static OP 多少 HDOJ1799


循环多少次?


Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5459    Accepted Submission(s): 2122


Problem Description


  我们知道,在编程中,我们时常需要考虑到时间复杂度,特别是对于循环的部分。例如,
如果代码中出现
for(i=1;i<=n;i++) OP ;
那么做了n次OP运算,如果代码中出现
fori=1;i<=n; i++)
  for(j=i+1;j<=n; j++) OP;
那么做了n*(n-1)/2 次OP 操作。
现在给你已知有m层for循环操作,且每次for中变量的起始值是上一个变量的起始值+1(第一个变量的起始值是1),终止值都是一个输入的n,问最后OP有总共多少计算量。


 



Input


  有T组case,T<=10000。每个case有两个整数m和n,0<m<=2000,0<n<=2000.


 



Output


  对于每个case,输出一个值,表示总的计算量,也许这个数字很大,那么你只需要输出除1007留下的余数即可。


 



Sample Input


2
1 3
2 3

 



Sample Output


3 3


这个题需要多些数据来发现规律。


其实是一个杨辉三角:


   M:1层,2层。。。。


N


1


2


3





将数据放进去(我懒得画表格了


0
0 1
0 2 1
0 3 3 1
0 4 6 4 1
0 5 10 10 5 1
0 6 15 20 15 6 1
0 7 21 35 35 21 7 1
0 8 28 56 70 56 28 8 1
0 9 36 84 126 126 84 36 9 1




将这个杨辉三角打表就行了。


import java.util.Scanner;

public class Main{
	private static Scanner scanner;
	private static int arr[][];

	public static void main(String[] args) {
		dabiao();
		scanner = new Scanner(System.in);
		int cases = scanner.nextInt();
		while (cases-- > 0) {
			int m = scanner.nextInt();
			int n = scanner.nextInt();
			System.out.println(arr[n][m]);
		}
	}

	private static void dabiao() {
		arr = new int[2001][2001];
		for (int i = 1; i < arr.length; i++) {
			arr[i][1] = i % 1007;
		}
		for (int i = 2; i < arr.length; i++) {
			for (int j = 2; j <= i; j++) {
				arr[i][j] = (arr[i - 1][j] + arr[i - 1][j - 1]) % 1007;
			}
		}
	}
}



标签:arr,scanner,int,Scanner,循环,static,OP,多少,HDOJ1799
From: https://blog.51cto.com/u_15741949/6170273

相关文章

  • continue 中断本次循环 进入循环的下一次
    '''continuebreak公司有1万元有20个员工来领工资每人领取1千元随机数绩效1到10如果低于5不发工资下一位如果领取完了结束发工资'''#工资总和是1万元每个人1千#20个人的绩效importrandomhe=10000whilehe>0:jixiao=random.randint(1,10)prin......
  • 异步编程之事件循环机制
    JavaScript是一门单线程语言,我们可以通过异步编程的方式来实现实现类似于多线程语言的并发操作。本文着重讲解通过事件循环机制来实现多个异步操作的有序执行、并发执行;通过事件队列实现同级多个并发操作的先后执行顺序,通过微任务和宏任务的概念来讲解不同阶段任务执行的先后顺序,......
  • 自动化测试覆盖率要到多少才算足够
    自动化测试覆盖率要到多少才算足够本文非原创,翻译自https://qahiccupps.blogspot.com/2021/09/693-ok.html“我们的测试用例中有多少是自动化的?”这个问题有很多内容,特别是当它是监控测试状态的指标的时候。这也不是我第一次被问到。根据我的经验,当有人提出这个问题时,可能是因......
  • lambda中的forEach如何跳出循环
    lambda中的forEach如何跳出循环    前提   在Java8中的forEach()中,"break"或"continue"是不被允许使用的,而return的意思也不是原来return代表的含义了。forEach(),说到底是一个方法,而不是循环体,结束一个方法的执行自然是用return。    1. 在Java8中直接......
  • API 网关日志的价值,你了解多少?
    本文介绍了API网关日志的价值,并以知名网关ApacheAPISIX为例,展示如何集成API网关日志。作者钱勇,API7.ai技术工程师,ApacheAPISIXCommitter。原文链接网关日志的价值在数字化时代,软件架构随着业务成长而变得越来越复杂,这给故障的发现和排查都带来了非常大的挑战,进一......
  • 详细介绍Glib 主事件循环轻度分析与编程应用
    glib是一个跨平台、用C语言编写的若干底层库的集合。编写案例最好能够结合glib源码,方便随时查看相关函数定义。glib实现了完整的事件循环分发机制。有一个主循环负责处理各种事件。事件通过事件源描述,常见的事件源文件描述符(文件、管道和socket)超时idle事件当然,也可以自......
  • 你到底值多少钱?2023打工人薪酬指南
    你到底值多少钱?2023打工人薪酬指南 大家好,我是王有志,欢迎和我聊技术,聊漂泊在外的生活。作为打工人,你最关心什么?技能,成长,发展还是薪酬?刚毕业时,我为了赢得面试官的好感,说了很多违心话,如:“工资不要紧,主要是想学习”,又或者是“我对贵司的这块技术非常感兴趣”。现在想想,呸!恶......
  • for 循环 开始和结束一定要确定好 in range(1,1)很过分
    '''for循环坚持每天送玫瑰花送一百天每天一百天'''j=1;forjinrange(1,101):forxinrange(1,11):print("第"+str(x)+"朵玫瑰")print("10朵玫瑰已送,我喜欢你")print("第"+str(j)+"天,小美答应我的表白......
  • PA 懒加载(循环引用,N+1,使用关联对象)(二)
    这次具体讲述一下,对于懒加载遇到(循环引用,N+1,使用关联对象)的解决方案。为了方便大家模拟操作,我会完整说一下不想看过程的,直接看总结。 一建表创建School和UserSchoolSETNAMESutf8mb4;SETFOREIGN_KEY_CHECKS=0;--------------------------------Tablestructu......
  • PUG_关于if 判断和循环对象数组的使用
    PUG_关于if判断和循环对象数组的使用#contentiffollowList.length>0eachvalinfollowList.followingGroupsectionimg.avatarUrl(src=`${val.avatarUrl}`,alt='')......