SDSC 2018 day2解题报告
10.12考试总结
T1 最近公共祖先
预估得分: 100
实际得分: 20
最大得分: 100
用时:1小时10分 ~1小时20分
一看题目就知道肯定是找规律题
20pts:
就是直接暴力求lca,很简单
100pts:
以下是打的表:
2
22
142
734
3390
14718
61694
253438
1029118
用excel生成一下函数图像可以看出,是一个指数函数?

卧槽,昨天刚刚看了这东西,爽,这种东东一般都是x^y的加减形式
开始硬凑
由前三项可以看出x应该与2有关系,否则不好凑出2来,所以x取2
2的幂次
2^0 1
2^1 2
2^2 4
2^3 8
2^4 16
2^5 32
2^6 64
2^7 128
#include<bits/stdc++.h>
#define int long long int
using namespace std;
const int mod=1e9+7;
int n;
int ksm(int a,int b) {
int res=1;
while(b) {
if(b&1) res=(res*a)%mod;
a=(a*a)%mod;
b>>=1;
}
return res;
}
signed main() {
// freopen("commonants.in","r",stdin);
// freopen("commonants.out","w",stdout);
cin>>n;
if(n<=9) {
if(n==1) {
cout<<2;
return 0;
}
if(n==2) {
cout<<22;
return 0;
}
if(n==3) {
cout<<142;
return 0;
}
if(n==4) {
cout<<734;
return 0;
}
if(n==5) {
cout<<3390;
return 0;
}
if(n==6) {
cout<<14718;
return 0;
}
if(n==7) {
cout<<61694;
return 0;
}
if(n==8) {
cout<<253438;
return 0;
}
if(n==9) {
cout<<1029118;
return 0;
}
//n==10 忘记打表了
}
int ans=(ksm(2,2*n+2)-(((4*n)%mod+2)*(ksm(2,n)%mod))-2+mod)%mod;
while(ans<0)
{
ans+=mod;
}
ans=(ans+mod)%mod;
cout<<ans%mod;;
return 0;
}
错误原因
取模翻车,模出负数来了
应该是
(ans%mod+ans)%mod
T2 即时战略
预估得分:40
实际得分: 40
最大得分: 40
用时: 大约40分钟
10pts:
傻逼部分,差点忘了打上这部分的分,哦我真是傻逼
40pts
直接暴力统计,暴力计算
复杂度:O(n^4)
100pts
感觉上每个点的最大值,和最小值应该和他附近的点有关
感觉可以dp,如果有空再来搞
#include<bits/stdc++.h>
//#define int long long int
using namespace std;
const int N=444;
int w[N][N],n,h,p,ans;
int ans_max=0,ans_min=2147483647;
int d[N][N];//受损程度
#define fre
int main() {
#ifdef fre
freopen("rts.in","r",stdin);
freopen("r1.out","w",stdout);
#endif
cin>>n>>h>>p;
if(p==1) {
//10pts
for(int i=1; i<=n; ++i)
for(int j=1; j<=h; ++j) {
scanf("%d",&w[i][j]);
ans_max=max(w[i][j],ans_max);
ans_min=min(w[i][j],ans_min);
}
cout<<ans_min<<' '<<ans_max;
return 0;
}
//30pts
for(int i=1; i<=n; ++i)
for(int j=1; j<=h; ++j)
scanf("%d",&w[i][j]);
for(int i=1; i<=n; ++i) { //枚举投弹点的横坐标
for(int j=1; j<=h; ++j) { //枚举投弹点的纵坐标
ans=0;
for(int k=1; k<=n; ++k) {
for(int l=1; l<=h; ++l) {
d[k][l]=0;
int tmp=abs(i-k)+abs(j-l);
d[k][l]=max(0,p-tmp);
ans+=d[k][l]*w[k][l];
}
}
if(ans>ans_max) ans_max=ans;
if(ans<ans_min) ans_min=ans;
}
}
cout<<ans_min<<' '<<ans_max;
#ifndef fre
fclose(stdin);
fclose(stdout);
#endif
return 0;
}
T3 欧皇
预估得分:25
实际得分:25
最大得分: 40
用时:大约1小时多一点
10pts
w*h<=2 傻逼部分分,手玩就ok
可是我太菜了。不想手玩,于是就去搞搞其他部分分
25pts
w*h<=8
暴力枚举每个棋子放在那个格子里
卧槽翻车了.....看错时间
40pts
c1 一共就一颜色的棋子
可见就是要从ai个棋子里跳出一部分来放到wh的棋盘上,我们可以反过来搞
让wh的棋盘放ai个棋子有多少种方案,卧槽,这不是组合数嘛!!
C{nm,ai}i1
(⊙o⊙)…组合数怎么求来着.........一个悲惨的故事开始了....
55pts
ai==1 每种颜色的棋子都只有1个
卧槽这不是排列嘛!!!!
(⊙o⊙)…排列怎么求来着.........又一个悲惨的故事开始了....
等等好像不是,卧槽我不会这一档
100pts
卧槽我不会求排列和组合,部分分搞不到了,那就只能去搞搞正解了
没有特殊的限制.....应该去看看题目有什么特殊的性质或者是要求
两种方案不同当且仅当存在一个格子在两种方案中一种放
棋子一种不放棋子或放的棋子不一样
考虑20pts的做法
枚举每个棋子的情况 .仔细观察数据范围可以看出w,h的范围非常小<=30
所以可以直接当做状态来用
用dp[x][i][j]表示x这种棋子放在i,j格子是的合法情况
算了,不搞了,不会 ,不过sjp大佬肯定会!
#include<bits/stdc++.h>
#define int long long int
using namespace std;
const int mod=1e9+7;
const int N=2019;
int w,h,c;
int a[N],flag;
int C[N][N],visit[N][N];
int askC(int n,int k) {
if(visit[n][k]) return C[n][k];
if(k>n)return 0;
if(n==k||k==0) return 1;
visit[n][k]=1;
return C[n][k]=(askC(n-1,k-1)+askC(n-1,k))%mod;
}
int pts2() {
return askC(w*h,a[1]);
}
signed main() {
freopen("europe.in","r",stdin);
freopen("europe.out","w",stdout);
cin>>w>>h>>c;
for(int i=1; i<=c; ++i) {
cin>>a[i];
if(a[i]!=1) flag=1;
}
if(c==1) {//第2档分
cout<<pts2()%mod;
return 0;
}
if(w*h<=2) {//第1档分
if(!a[1]||!a[2]) {
cout<<3<<endl;
return 0;
} else {
cout<<0<<endl;
return 0;
}
}
if(flag==0) { //第3档分~~~想错了咕咕咕。,不是排列
while(1) {
break;
}
cout<<rand()<<15+rand()<<15%mod;
return 0;
}
cout<<rand()<<15+rand()<<15%mod;
return 0;
}
SDSC 2018 day2解题报告的更多相关文章
- GX/GZOI2019 day2 解题报告
GX/GZOI2019 day2 解题报告 题目链接 逼死强迫症 旅行者 旧词 t1 逼死强迫症 显然地,记 \(f(i)\) 为长度为 \(i\) 的木板的答案,可得: \(\\\) \[f(i)= ...
- 【NOIP2015】提高day2解题报告
题目: P1981跳石头 描述 一年一度的“跳石头”比赛又要开始了!这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 N ...
- 【未完成0.0】Noip2012提高组day2 解题报告
第一次写一套题的解题报告,感觉会比较长.(更新中Loading....):) 题目: 第一题:同余方程 描述 求关于x的同余方程ax ≡ 1 (mod b)的最小正整数解. 格式 输入格式 输入只有一 ...
- NOIp2016 Day1&Day2 解题报告
Day1 T1 toy 本题考查你会不会编程. //toy //by Cydiater //2016.11.19 #include <iostream> #include <cstd ...
- 常州培训 day2 解题报告
第一题: 题目大意: 给出一个M面的骰子,投N次,求最大期望值. 最大期望值的定义: 比如M=2,N=2, 那么 2次可以是 1,1,最大值为1: 1,2最大值为2: 2,1最大值为2: 2,2 最大 ...
- NOIP2018提高组Day2 解题报告
前言 关于\(NOIP2018\),详见此博客:NOIP2018学军中学游记(11.09~11.11). \(Day2\)的题目和\(Day1\)比起来,真的是难了很多啊. \(T1\):旅行(点此看 ...
- NOIP 2018 D1 解题报告(Day_1)
总分 205分 T1 100分 T2 95分 T3 10分 T1: 题目描述 春春是一名道路工程师,负责铺设一条长度为 nn 的道路. 铺设道路的主要工作是填平下陷的地表.整段道路可以看作是 ...
- CH Round #55 - Streaming #6 (NOIP模拟赛day2)解题报告
T1九九归一 描述 萌蛋在练习模n意义下的乘法时发现,总有一些数,在自乘若干次以后,会变成1.例如n=7,那么5×5 mod 7=4,4×5 mod 7=6,6×5 mod 7=2,2×5 mod 7 ...
- noip2011提高组day1+day2解题报告
Day1 T1铺地毯https://www.luogu.org/problem/show?pid=1003 [题目分析] 全部读入以后从最后一个往前找,找到一个矩形的范围覆盖了这个点,那这个矩形就是最 ...
随机推荐
- Android项目实现Module目录结构分组
一.背景 项目需求的频繁迭代,新的产品功能在不断添加和延伸,随之带来的是,项目技术复杂度的提升. 近几年来,Android模块化.组件化相关技术得到极速发展,将项目整体进行分层,不同的层次之间依据实际 ...
- Linux系统安装snmp服务
Linux安装snmp详解 Snmp一种网络之间的传输协议,通过snmp可以采集很多指标比如cpu.内存及磁盘的信息,现在越来越多的网络设备基本上都支持snmp,本文介绍了snmp的安装过程. 二.安 ...
- 在Mac 上搭建Linux虚拟机--MacOS & VMware10 & CentOS 7
在大型项目开发中, 需要使用Linux下的C语言对工程进行开发, 在个人PC或者工作站上搭建Linux系统十分容易且方便. 本篇文章将介绍操作系统和虚拟机的搭建: 1 操作系统2 虚拟机概念3 Lin ...
- PyCharm创建Django项目并连接mysql数据库
0. 安装Django pip install django 1. 新建项目 注:我的Pycharm为社区版,创建项目时,File->New Project- 显示为: 注意勾选内容. 如果 ...
- 「vue基础」一篇浅显易懂的 Vue 路由使用指南( Vue Router 上)
大家好,今天的内容,我将和大家一起聊聊 Vue 路由相关的知识,如果你以前做过服务端相关的开发,那你一定会对程序的URL结构有所了解,我没记错的话也是路由映射的概念,需要进行配置. 其实前端这些框架的 ...
- WPF WebBrowser抑制Suppress 弹出 脚本错误 对话框 但是样式改变 需要继续改善
1.添加引用 using System.Reflection;using System.Windows.Controls; 2.静态类扩展方法(this) public static class We ...
- Linq与委托
using System; using System.Linq; using System.Reflection; using Stuglxt_Models; namespace ConsoleApp ...
- IDEA 部署spring Cloud
Spring cloud Eureka Eureka Server,注册中心 Eureka Client,所有要进行注册的微服务通过Eureka Client 连接到 Eureka Server ,完 ...
- c#专业的UVC摄像头深控类库-SharpCamera介绍
SharpCamera是专业的UVC摄像头深控类库.允许您在C#代码内修改摄像头的高级参数,比如亮度.对比度.清晰度.色调.饱和度.伽玛值.白平衡.逆光对比.增益.缩放.焦点.曝光.光圈.全景.倾斜. ...
- Java内功心法,创建型设计模式包括哪些
1. 单例(Singleton) Intent 确保一个类只有一个实例,并提供该实例的全局访问点. Class Diagram 使用一个私有构造函数.一个私有静态变量以及一个公有静态函数来实现. 私有 ...