A题:

一道dp的题目

dp[i][j] = k 代表 i行放j个棋子有k中可能

dp[i][j] = dp[i-1][0] + dp[i-1][1] + dp[i-1][2] +...dp[i-1][j]

初始 dp[1][0] = 1, dp[1][1] = 1

注意点:

  1. BigInteger 否则爆栈
  2. 最后return 从1开始加
import java.util.*;
import java.math.*; public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
BigInteger[][] dp = new BigInteger[110][110];
for (int i = 0;i <= 109; i++)
for(int j = 0;j <= 109; j++)
dp[i][j] = new BigInteger("0");
dp[1][0] = new BigInteger("1");
dp[1][1] = new BigInteger("1"); int n = sc.nextInt();
for (int i = 2; i <= n ;i++){
for (int j = 0; j <= i; j++){
for (int k = 0; k <= j; k++){
dp[i][j] = dp[i][j].add(dp[i-1][k]);
}
}
}
BigInteger ans = new BigInteger("0");
for (int i = 1; i <= n; i++)
ans = ans.add(dp[n][i]);
System.out.println(ans);
}
}

B题:用公式

不知道这个A的伴随矩阵公式,就很难受了- - 。。

import java.util.*;

public class Main2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int i = 0; i < T; i++) {
int[][] A = new int[3][3];
for (int m = 0; m < 3; m ++) {
for (int n = 0; n < 3; n++) {
A[m][n] = sc.nextInt();
}
}
long ao = (A[0][0]* A[1][1]* A[2][2]) + (A[1][0]* A[2][1]* A[0][2]) + (A[2][0]* A[0][1]* A[1][2])
- (A[0][2]* A[1][1]* A[2][0]) - (A[0][0]* A[1][2]* A[2][1]) - (A[0][1]* A[1][0]* A[2][2]);
System.out.println(ao* ao);
}
}
}

C题:

一开始理解错了,他的意思是a^n,我还以为要a *=a;

import java.math.BigInteger;
import java.util.*; public class Main3{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int i = 0; i < T; i++) {
BigInteger a = new BigInteger("0"), n = new BigInteger("0"), b = new BigInteger("0");
a = sc.nextBigInteger();
n = sc.nextBigInteger();
b = sc.nextBigInteger();
System.out.println(a.modPow(n,b));
}
}
}

E题:

感觉巨他妈坑了,本来

××if (y1_xing == C)

××B --;

我都服了,被这个卡了小半天。。

import java.math.BigInteger;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*; public class Main{
static int y1_xing;
static boolean r;
static int ny, nm, nd;
static int[] monthofday = new int[]{-1,31,28,31,30,31,30,31,31,30,31,30,31};
static int res; //这个月的几号 public static boolean is_run(int year) {
if (year % 400 == 0 ||(year % 4 == 0 && year % 100 != 0))
return true;
return false;
} public static void gety1_xing(int ny,int y,int A, int B, int C) {
y1_xing = 1;
for (ny = 1850; ny < y; ny++) {
for (nm = 1; nm <= 12; nm ++) {
int month_ofday = monthofday[nm];
if(is_run(ny) && nm == 2) month_ofday += 1;
for(nd = 1; nd <= month_ofday; nd++) {
y1_xing += 1;
if (y1_xing == 8) y1_xing = 1;
}
}
}
for(nm = 1;nm < A;nm++) {
int month_ofday = monthofday[nm];
if(is_run(y) && nm == 2) month_ofday += 1;
for(nd = 1; nd <= month_ofday; nd++) {
y1_xing += 1;
if (y1_xing == 8) y1_xing = 1;
}
}
boolean has = false; int month_ofday = monthofday[nm];
if(is_run(y) && B == 2) month_ofday += 1; for (res = 1;res <= month_ofday; res++) {
y1_xing += 1;
if (y1_xing == 8) {
y1_xing = 1;
}
if (y1_xing == C)
B --; if (B == 0) {
has = true;
break;
} }
if(!has) res = -1;
} public static void main(String[] args) throws ParseException{
Scanner sc = new Scanner(System.in);
while (sc.hasNextInt()) {
int A = sc.nextInt(), B = sc.nextInt(), C = sc.nextInt(), y = sc.nextInt();
gety1_xing(ny,y, A, B, C);
if (res != -1) {
Calendar c = Calendar.getInstance();
c.set(Calendar.YEAR, y);
c.set(Calendar.MONTH, A - 1);
c.set(Calendar.DAY_OF_MONTH, res);
Date d=new Date();
d=c.getTime();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
String str=sdf.format(d);
System.out.println(str);
}
else
System.out.println("none");
}
}
}

H题:

先打表,在找规律!

import java.math.BigInteger;
import java.util.*; public class MainH{
//打表 -> 找规律!
//100 1-1 1-2 1-3 1-4....1-100
//99 1-1 1-2 1-3...1-99
//...
//2 1-1 1-2
//1 1-1
public static void main(String[] args){
/*
for(int i = 1; i <= 10 ; i++) {
int[] a = new int[i + 1]; //计数从1开始
//经过i次
for(int j = 2; j <= i; j++) {
for(int k = 1; k*j < a.length; k++) {
a[k*j] = 1 - a[k*j];
}
}
for (int j = 1; j <= i; j++) {
System.out.print(a[j]+" ");
}
System.out.println();
}*/ //找到规律:规律是:
//经过i次,为1的位置为:1 4 9 16 25 36 49 64 81 100 121 144
// A=1,B=3
//4 - 1 - 1 = 2, 9 - 4 - 1 =4,
//16 - 9 - 1 = 6, 25 - 16 - 1 = 8
//依次增长2 //1: 0 0 0 0 0
//2: 0 1 0 1 0
//3: 0 1 1 1 0
//4: 0 1 1 0 0
//5: 0 1 1 0 1 Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int i = 0; i < T; i++) {
long N = sc.nextLong(), A = sc.nextLong(),B = sc.nextLong();
int start = 1;
int gap = 2;
while (start < A) {
start += gap + 1;
gap += 2;
}
//start >= A
int res = 0;
while (start <= B) {
res ++;
start += gap + 1;
gap += 2;
}
System.out.println(B - A+1-res);
}
}
}

感觉没有练习过ACM 的确是做得磕磕拌拌,全是坑!!! 明天接着更剩下的题吧- - 。。

HEU预热赛的更多相关文章

  1. 哈尔滨工程大学ACM预热赛

    https://ac.nowcoder.com/acm/contest/554#question A #include <bits/stdc++.h> using namespace st ...

  2. 哈尔滨工程大学ACM预热赛(A,C,H,I)

    A: 链接:https://ac.nowcoder.com/acm/contest/554/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言655 ...

  3. 哈尔滨工程大学ACM预热赛 G题 A hard problem(数位dp)

    链接:https://ac.nowcoder.com/acm/contest/554/G Now we have a function f(x): int f ( int x ) {     if ( ...

  4. 哈尔滨工程大学ACM预热赛 补题

    链接:https://ac.nowcoder.com/acm/contest/554/A来源:牛客网 小虎刚刚上了幼儿园,老师让他做一个家庭作业:首先画3个格子,第二行有2个格子,第三行有1个格子. ...

  5. SCNU ACM 2016新生赛决赛 解题报告

    新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...

  6. C#中HttpClient使用注意:预热与长连接

    最近在测试一个第三方API,准备集成在我们的网站应用中.API的调用使用的是.NET中的HttpClient,由于这个API会在关键业务中用到,对调用API的整体响应速度有严格要求,所以对HttpCl ...

  7. SCNU ACM 2016新生赛初赛 解题报告

    新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...

  8. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  9. SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告

            题目大意:一个$N$$\times$$N$的阵列,每个格子有$X_{ij}$个调和之音,若每次只能选择走右边或下边,从左上角出发走到右下角,问最多能收集到多少个调和之音?       ...

随机推荐

  1. 一个电脑的重装到java开发环境安装配置的全过程

    刚拿到一台别人用过的电脑.看着c盘爆满,而且用了还是windows7操作系统,强迫症发作马上就准备重装系统. 之前换固态使用wepe制作U盘启动盘装系统的步骤和过程全部忘记的,贼尴尬. 同事都看不过眼 ...

  2. 通过jenkins API去build一个job

    背景 查看jenkins的api 直接访问 JENKINS_URL/job/JOB_NAME/api/ 就可以查看jenkins的api build一个job的话,是POST请求 JENKINS_UR ...

  3. leetcode — zigzag-conversion

    /** * Source : https://oj.leetcode.com/problems/zigzag-conversion/ * * Created by lverpeng on 2017/6 ...

  4. JAVA开发者的Golang快速指南

    Golang作为Docker.Kubernetes和OpenShift等一些酷辣新技术的首选编程语言,越来越受欢迎.尤其它们都是开源的,很多情况下,开源是非常有价值的.深入学习阅Golang等源代码库 ...

  5. 给linux系统配置网络

    修改/etc/sysconfig/network-scripts/ifcfg-eth0 ip地址变量:IPADDR子网掩码变量:NETMASK如果本机和linux 网段不相同 如:192.168.8. ...

  6. input框限制只能输入正整数、字母、小数、汉字

    有时需要限制文本框输入内容的类型,本节分享下正则表达式限制文本框只能输入数字.小数点.英文字母.汉字等代码. 例如,输入大于0的正整数 代码如下: <input onkeyup="if ...

  7. SpringBoot 三种方式配置 Druid(包括纯配置文件配置)

    记录一下在项目中用纯 YML(application.yml 或者 application.properties)文件.Java 代码配置 Bean 和注解三种方式配置 Alibaba Druid 用 ...

  8. 【F12】chrome浏览器中 F12 功能的简单介绍

    chrome浏览器中 F12 功能的简单介绍 由于F12是前端开发人员的利器,所以我自己也在不断摸索中,查看一些博客和资料后,自己总结了一下来帮助自己理解和记忆,也希望能帮到有需要的小伙伴,嘿嘿! 首 ...

  9. Vue动态新增对象属性

    Vue.set( target, key, value ) 参数: {Object | Array} target {string | number} key {any} value 返回值:设置的值 ...

  10. 具体CAS操作实现(无锁算法)

    具体CAS操作 上一篇讲述了CAS机制,这篇讲解CAS具体操作. 什么是悲观锁.乐观锁?在java语言里,总有一些名词看语义跟本不明白是啥玩意儿,也就总有部分面试官拿着这样的词来忽悠面试者,以此来找优 ...