A

T2-power of 2

题目描述

是一个十分特殊的式子。

例如:

n=0时 =2

然而,太大了

所以,我们让对10007 取模

输入输出格式

输入格式:

n

输出格式:

 % 10007

输入输出样例

输入样例#1:

2
输出样例#1:

16

说明

n<=1000000


2^(2^n)

快速幂的方式log幂....就是n次平方

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#define debug(x) cout<<#x<<'='<<x<<' '
using namespace std;
typedef long long ll;
const int MOD=;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int n;
int ans=;
int main(){
n=read();
if(n==){cout<<;return ;}
while(n--){
ans=(ans*ans)%MOD;
}
printf("%d",ans%MOD);
}


C

T3-cube

题目描述

有一个立方体,分成了个完全相等的小格

有的小格出现了糖果,如果一个格子出现多次糖果,则以最后得糖果数为准,你到了这个小格就可以拿,你在(1,1,1),你要走到(n,n,n),且只能走最短路径

问:你最多能拿到多少糖果

输入输出格式

输入格式:

n 以下若干行(EOF结束),每行4个数,前三个数是坐标,最后一个数是糖果个数

输出格式:

你最多拿到的糖果数

输入输出样例

输入样例#1:

2
1 1 1 3
1 1 2 4
2 1 2 5
输出样例#1:

12
输入样例#2:

5
输出样例#2:

0

说明

n<=100

糖果数<=100


水DP,立体了而已

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
#define debug(x) cout<<#x<<'='<<x<<' '
using namespace std;
const int N=;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int n,x,y,z,w[N][N][N];
int f[N][N][N];
int main(){
n=read();
while(scanf("%d%d%d",&x,&y,&z)!=EOF) w[x][y][z]=read();
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
for(int k=;k<=n;k++)
f[i][j][k]=max(f[i-][j][k],max(f[i][j-][k],f[i][j][k-]))+w[i][j][k];
printf("%d",f[n][n][n]);
}


D

T4-cube2

题目描述

还是那个立方体

还是那些糖

只是你需要走两次

输入输出格式

输入格式:

见T3

输出格式:

同上

输入输出样例

输入样例#1:

2
1 1 2 3
1 2 2 3
1 2 1 3
输出样例#1:

9

说明

n<=10


立体版传纸条

(1,1,1)和(n,n,n)也不知道怎么搞的

#include <iostream>
#include <cstdio>
//#include <algorithm>
#include <cstring>
#include <cmath>
#define debug(x) cout<<#x<<'='<<x<<' '
using namespace std;
typedef long long ll;
const int N=;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-;c=getchar();}
while(c>=''&&c<=''){x=x*+c-'';c=getchar();}
return x*f;
}
int n,x,y,z,w[N][N][N];
int f[N][N][N][N][N*];
inline int max(int a,int b){
return a>b?a:b;
}
void dp(){
for(int s=;s<=n*;s++)
for(int i=;i<s&&i<=n;i++)
for(int j=;(i+j)<s&&j<=n;j++)
for(int k=;k<s&&k<=n;k++)
for(int l=;(l+k)<s&&l<=n;l++){
int z1=s-(i+j),z2=s-(k+l);
if(z1>n||z2>n) continue;
if(i==k&&j==l&&s!=*n) continue;
int mx1=max(f[i-][j][k-][l][s-],f[i-][j][k][l-][s-]);
mx1=max(f[i-][j][k][l][s-],mx1);
int mx2=max(f[i][j-][k-][l][s-],f[i][j-][k][l-][s-]);
mx2=max(f[i][j-][k][l][s-],mx2);
int mx3=max(f[i][j][k-][l][s-],f[i][j][k][l-][s-]);
mx3=max(f[i][j][k][l][s-],mx3);
f[i][j][k][l][s]=max(mx1,max(mx2,mx3))+w[i][j][z1]+w[k][l][z2]; //printf("%d %d %d %d %d %d\n",i,j,k,l,s,f[i][j][k][l][s]);
}
}
int main(){
n=read();
while(scanf("%d%d%d",&x,&y,&z)!=EOF) w[x][y][z]=read();
dp();
printf("%d",f[n][n][n][n][*n]-w[n][n][n]+w[][][]);
}


B

洛谷CON1041 NOIP模拟赛一试的更多相关文章

  1. [洛谷0925]NOIP模拟赛 个人公开赛 OI

     P3395 路障 题目背景 此题约为NOIP提高组Day1T1难度. 题目描述 B君站在一个n*n的棋盘上.最开始,B君站在(1,1)这个点,他要走到(n,n)这个点. B君每秒可以向上下左右的某个 ...

  2. 【比赛】洛谷夏令营NOIP模拟赛

    Day1 第一题 水题 第二题 题意:一个n*m的字符矩阵从左上到右下,经过字符形成回文串的路径数.n≤500 回文串,考虑两段往中间DP. f[k][x][y]表示走了k步,左上点横坐标为x,右下点 ...

  3. 洛谷 P5046 [Ynoi2019 模拟赛] Yuno loves sqrt technology I(分块+卡常)

    洛谷题面传送门 zszz,lxl 出的 DS 都是卡常题( 首先由于此题强制在线,因此考虑分块,我们那么待查询区间 \([l,r]\) 可以很自然地被分为三个部分: 左散块 中间的整块 右散块 那么这 ...

  4. [洛谷P5048][Ynoi2019模拟赛]Yuno loves sqrt technology III

    题目大意:有$n(n\leqslant5\times10^5)$个数,$m(m\leqslant5\times10^5)$个询问,每个询问问区间$[l,r]$中众数的出现次数 题解:分块,设块大小为$ ...

  5. 洛谷金秋夏令营模拟赛 第2场 T11737 时之终末

    这道题就是道状压dp...比赛的时候太贪心 然后状压又不好 所以T2 T3一起挂了QAQ 吸取教训QAQ f[i][j][k]表示前i个数选了j个 最后a个的状态为k的答案 #include<c ...

  6. 洛谷金秋夏令营模拟赛 第2场 T11738 伪神

    调了一个下午只有八十分QAQ md弃了不管了 对拍也没拍出来 鬼知道是什么数据把我卡了QAQ 没事我只是个SB而已 这题其实还是蛮正常的 做法其实很简单 根据链剖的构造方法 你每次修改都是一段又一段的 ...

  7. 【洛谷】xht模拟赛 题解

    前言 大家期待已久并没有的题解终于来啦~ 这次的T1和HAOI2016撞题了...深表歉意...表示自己真的不知情... 天下的水题总是水得相似,神题各有各的神法.--<安娜·卡列妮娜> ...

  8. 洛谷P5048 [Ynoi2019模拟赛]Yuno loves sqrt technology III(分块)

    传送门 众所周知lxl是个毒瘤,Ynoi道道都是神仙题 用蒲公英那个分块的方法做结果两天没卡过去→_→ 首先我们分块,预处理块与块之间的答案,然后每次询问的时候拆成整块和两边剩下的元素 整块的答案很简 ...

  9. 洛谷 P5048 - [Ynoi2019 模拟赛] Yuno loves sqrt technology III(分块)

    题面传送门 qwq 感觉跟很多年前做过的一道题思路差不多罢,结果我竟然没想起那道题?!!所以说我 wtcl/wq 首先将 \(a_i\) 离散化. 如果允许离线那显然一遍莫队就能解决,复杂度 \(n\ ...

随机推荐

  1. github如何查看提交历史呢

    git日志的查看,在使用 Git 提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,我们可以使用 git log 命令查看....... 一.查看日志信息: $ git log 可以用 -- ...

  2. 【Java每日一题】20161219

    package Dec2016; import java.util.Arrays; public class Ques1219 { public static void main(String[] a ...

  3. linux下c程序的链接、装载和库(3)

    9. 目标文件放在一起-->静态库. 你的同事给出的目标文件太多了,从 one.o two.o …… …… 一直到 xxx.o. 好的,你如果真正想用,你的同事提供的这些现有的目标文件,你得做三 ...

  4. nginx配置多个虚拟主机vhost

    在nginx下配置虚拟主机vhost非常方便.主要在nginx的配置文件nginx.conf中添加一个server即可 比如我想配置两个虚拟主机,通过域名linux.com和linux2.com访问, ...

  5. 使用KMP算法判断是否为旋转词

    假设有两个字符串A.B,要判断它们是否为旋转词,只需构造一个"A+A"字符串,再与B比较,若B为A的旋转词,则使用KMP算法是可以得到结果的 代码如下: import java.u ...

  6. GJM :SqlServer语言学习笔记

    ----------------------------SqlServer RDBMS 关系型数据库管理系统 Row/Record 行 Colimn/Attribute 列 Field/Cell 字段 ...

  7. ArcGIS安装错误1402

    以前出遇到过在安装ArcGIS软件的时候出现1402错误,错误原因是因为权限不足,具体是什么造成权限不足还不清楚,估计是安装了什么软件后造成. 错误信息 解决方法 找到相应的注册表,在项上右键设置权限 ...

  8. Android Studio 导入项目 出现安装Error:Cause: failed to find target with hash string 'android-23' 等错误

    今天   在导入 一个新项目时 : 出现了这个错 Error:Cause: failed to find target with hash string 'android-23' in: C:\Use ...

  9. B样条曲线曲面(附代码)

    1 B样条曲线 1.1 B样条曲线方程 B样条方法具有表示与设计自由型曲线曲面的强大功能,是形状数学描述的主流方法之一,另外B样条方法是目前工业产品几何定义国际标准——有理B样条方法 (NURBS)的 ...

  10. numpy 函数一:linspace

    接触 numpy 遇到的第一个函数可能就是 linspace 函数,但是对于我们这种没有学过 matlab 的人来说,根本不知道这是什么. 所以只能自己查资料. 词典显示: 线性等分向量 线性平分矢量 ...