HEU预热赛
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
注意点:
- BigInteger 否则爆栈
- 最后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预热赛的更多相关文章
- 哈尔滨工程大学ACM预热赛
https://ac.nowcoder.com/acm/contest/554#question A #include <bits/stdc++.h> using namespace st ...
- 哈尔滨工程大学ACM预热赛(A,C,H,I)
A: 链接:https://ac.nowcoder.com/acm/contest/554/A来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言655 ...
- 哈尔滨工程大学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 ( ...
- 哈尔滨工程大学ACM预热赛 补题
链接:https://ac.nowcoder.com/acm/contest/554/A来源:牛客网 小虎刚刚上了幼儿园,老师让他做一个家庭作业:首先画3个格子,第二行有2个格子,第三行有1个格子. ...
- SCNU ACM 2016新生赛决赛 解题报告
新生初赛题目.解题思路.参考代码一览 A. 拒绝虐狗 Problem Description CZJ 去排队打饭的时候看到前面有几对情侣秀恩爱,作为单身狗的 CZJ 表示很难受. 现在给出一个字符串代 ...
- C#中HttpClient使用注意:预热与长连接
最近在测试一个第三方API,准备集成在我们的网站应用中.API的调用使用的是.NET中的HttpClient,由于这个API会在关键业务中用到,对调用API的整体响应速度有严格要求,所以对HttpCl ...
- SCNU ACM 2016新生赛初赛 解题报告
新生初赛题目.解题思路.参考代码一览 1001. 无聊的日常 Problem Description 两位小朋友小A和小B无聊时玩了个游戏,在限定时间内说出一排数字,那边说出的数大就赢,你的工作是帮他 ...
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告
题目大意:一个$N$$\times$$N$的阵列,每个格子有$X_{ij}$个调和之音,若每次只能选择走右边或下边,从左上角出发走到右下角,问最多能收集到多少个调和之音? ...
随机推荐
- solr单机部署tomcat
所需软件:solr4.8.1.Tomcat7 下载完相应软件后开始单机部署(windows下) 在F盘根目录创建solr文件夹,并解压solr4.8和tomcat7到该文件夹 在F盘根目录创建solr ...
- 协程及Python中的协程
1 协程 1.1协程的概念 协程,又称微线程,纤程.英文名Coroutine.一句话说明什么是线程:协程是一种用户态的轻量级线程.(其实并没有说明白~) 我觉得单说协程,比较抽象,如果对线程有一定了解 ...
- netty源码解解析(4.0)-6 线程模型-IO线程EventLoopGroup和NIO实现(一)
接口定义 io.netty.channel.EventLoopGroup extends EventExecutorGroup 方法 说明 ChannelFuture register(Channel ...
- Golang包管理工具之govendor的使用
1. govendor简介 golang工程的依赖包经常使用go get命令来获取,例如:go get github.com/kardianos/govendor ,会将依赖包下载到GOPATH的路径 ...
- S3C2440 DMA 驱动示例
将 DMA 抽象为一个字符设备,在初始化函数中调用 void *dma_alloc_writecombine(struct device *dev, size_t size, dma_addr_t * ...
- elasticsearch6.7 05. Document APIs(4)Delete API
3.Delete API delete API 可以让你删除一个特定id的文档,下面例子删除twitter索引中_doc类型.id为1的文档: DELETE /twitter/_doc/1 返回结果: ...
- elasticsearch6.7 01.入门指南(2)
2.安装(略) 默认情况下,elasticsearch 使用端口 9200 来访问它的 REST API.如果有必要,该端口也可以配置 3.探索集群 3.1 The REST API 既然我们已经启动 ...
- Fundebug前端JavaScript插件更新至1.2.0
摘要: Fundebug的前端JavaScript错误监控插件更新至1.2.0:支持监控WebSocket连接错误:修复了监控unhandledrejection错误的BUG,即未用catch处理的P ...
- 共用的h5回调页面
产生背景: APP里的公用页面,像帮助中心页.授权认证结果页.各种协议页面,都需要做成H5页面,方便安卓和ios去调用. 交互情况描述: 要是有动态值,就需要定义在自己H5链接的后面,让他们传值,自己 ...
- 【读书笔记】iOS-Settings Bundle
一,打开工程--->右键--->Add File--->iOS-->Resource-->Settings Bundle. 二,会弹出如下对话框---->Creat ...