成绩:

预计分数:20+10+40

实际分数:100+10+40.

一百三十多人的比赛全场rand7还水了个鼠标+键盘

unbelievable!

考试题目链接:

https://www.luogu.org/team/show?teamid=1353

T1

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#define lli long long
using namespace std;
const int mod=;
void read(int &n)
{
char c='+';int x=;bool flag=;
while(c<''||c>''){c=getchar();if(c=='-')flag=;}
while(c>=''&&c<='')
x=(x<<)+(x<<)+c-,c=getchar();
flag==?n=-x:n=x;
}
lli n,m;
int fastmul(int x,int p)
{
int now=x;
int ans=;
while(p)
{
if(p&)
{
--p;
ans=(ans+now)%mod;
}
p>>=;
now=(now+now)%mod;
}
return (ans-)%mod;
}
int main()
{
freopen("bpmp.in","r",stdin);
freopen("bpmp.out","w",stdout);
//read(n);read(m);
cin>>n>>m;
cout<<fastmul(n,m)%mod;
return ;
}

T1快速乘

一开始搞了个贪心不知道对不对,所以不期望能拿多少分,但没想到居然AC了

而且我以为这个题没有那么水于是就写了个快速乘、

事实上只要输出(n*m-1)%mod 就能AC,

(表示差点被卡成rank8,没奖)

http://www.cnblogs.com/zwfymqz/p/7186080.html

T2

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#include<cstdlib>
using namespace std;
inline void read(int &n)
{
char c='+';int x=;bool flag=;
while(c<''||c>''){c=getchar();if(c=='-')flag=;}
while(c>=''&&c<='')
x=(x<<)+(x<<)+c-,c=getchar();
flag==?n=-x:n=x;
}
int n,m;
struct node
{
int a[][];
int nowmaxn;
int bgx,bgy,edx,edy;
}now,nxt;
int ans=-0x7ffff;
queue<node>q;
int tot=;
inline void calc()
{
/*memset(nxt.a,0,sizeof(nxt.a));
for(int i=now.bgx;i<=now.edx;i++)
for(int j=now.bgy;j<=now.edy;j++)
nxt.a[i][j]=now.a[i][j];*/
nxt=now;
}
inline void print()
{ for(int i=now.bgx;i<=now.edx;i++)
{
for(int j=now.bgy;j<=now.edy;j++)
printf("%d ",now.a[i][j]);
printf("\n");
}
printf("*********************************\n");
}
inline void getans()
{
for(int i=now.bgx;i<=now.edx;i++)
for(int j=now.bgy;j<=now.edy;j++)
ans=max(ans,now.a[i][j]);
}
void check()
{
tot++;
//cout<<tot<<"---"<<endl;
if(tot>)
{
cout<<ans;
exit();
} }
inline void bfs(int hc,int lc)
{
q.push(now);
while(!q.empty())
{
now=q.front();
q.pop();
int num=;
for(int i=now.bgx;i<=now.edx;i++)
for(int j=now.bgy;j<=now.edy;j++)
if(now.a[i][j]>)
num+=now.a[i][j],check();
if(ans>num)
continue; getans();
calc();
// print();
for(int i=now.bgy;i<now.edy;i++)//横向折叠
{
for(int j=;j<=(min((i-now.bgy),(now.edy-i))+);j++)
{
for(int k=;k<=now.edx;k++)
{
nxt.a[k][i+j]+=nxt.a[k][i-j+];
nxt.a[k][i-j+]=;
check();
}
}
// cout<<now.bgy<<"&"<<i<<endl;
nxt.bgy=i+;
// cout<<nxt.bgy<<"^"<<endl;
nxt.edy=max(now.edy,i+i-now.bgy+);
nxt.bgx=now.bgx;
nxt.edx=now.edx;
q.push(nxt);
calc();
}
for(int i=now.bgx;i<now.edx;i++)
{
for(int j=;j<=(min((i-now.bgx),(now.edx-i+))+);j++)
{
for(int k=;k<=now.edy;k++)
{
nxt.a[i+j][k]+=nxt.a[i-j+][k];
nxt.a[i-j+][k]=;
check();
}
}
nxt.edy=now.edy;
nxt.bgy=now.bgy;
nxt.bgx=i+;
nxt.edx=max(now.edx,i+i-now.bgx+);
q.push(nxt);
calc();
}
} }
int main()
{
freopen("cfyw.in","r",stdin);
freopen("cfyw.out","w",stdout);
read(n);read(m);
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
read(now.a[i][j]);
now.bgx=now.bgy=;
now.edx=n;
now.edy=m;
bfs(,);
printf("%d",ans);
return ;
}

T2爆搜

一开始以为是矩阵什么乱七八糟的肯定不会于是就写超级暴力广搜,

本来以为能过50%的数据结果发现连4*4的都跑不出来。

没办法加了个最优性剪枝又加了个卡时,

结果。

除了第一个点AC其他全MLE,,,,,,,,,,,,,

What' a pity!

http://www.cnblogs.com/zwfymqz/p/7185970.html

T3

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#define lli long long int
using namespace std;
inline void read(int &n)
{
char c='+';int x=;bool flag=;
while(c<''||c>''){c=getchar();if(c=='-')flag=;}
while(c>=''&&c<='')
x=(x<<)+(x<<)+c-,c=getchar();
flag==?n=-x:n=x;
}
int mod=;
int n,m;
int ans=;
int gcd(int a,int b)
{
return b==?a%mod:gcd(b,a%b)%mod;
}
int hash[];
int main()
{
//freopen("hoip.in","r",stdin);
// freopen("hoip.out","w",stdout);
read(n);read(m);
if(n<&&m<)
{
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
ans=(ans+gcd(i,j))%mod;
printf("%d",ans%mod);
}
else if(n>&&m>)
{
printf("");
}
else
{
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
if(hash[(i*)%+(j*)%])
{
ans+=hash[(i*)%+(j*)%];
continue;
}
lli p=gcd(i,j)%mod;
lli a=i,b=j;
while(a<n&&b<m)
{
p=p+p;
a=a+a;
b=b+b;
hash[(i*)%+(j*)%]=p;
}
}
printf("%d",ans);
}
return ;
}

T3暴力+打表

暴力暴力暴力!!!

http://www.cnblogs.com/zwfymqz/p/7189521.html

总结:

这次考试也是比较无语,

感觉自己运气成分比较大,

全场40多个140分.......

也就是说T2接近150行的暴力救了我一命=.=///

不过我们学校居然有A了T3的(但那孩子T1炸了。。。)

以后继续努力吧!

2017.7.15清北夏令营精英班Day1解题报告的更多相关文章

  1. 洛谷P1080 [NOIP2012提高组D1T2]国王游戏 [2017年5月计划 清北学堂51精英班Day1]

    P1080 国王游戏 题目描述 恰逢 H 国国庆,国王邀请 n 位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右 手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这 n 位大臣排 ...

  2. 洛谷P1650 赛马[2017年5月计划 清北学堂51精英班Day1]

    P1650 赛马 题目描述 我国历史上有个著名的故事: 那是在2300年以前.齐国的大将军田忌喜欢赛马.他经常和齐王赛马.他和齐王都有三匹马:常规马,上级马,超级马.一共赛三局,每局的胜者可以从负者这 ...

  3. 洛谷P2258 子矩阵[2017年5月计划 清北学堂51精英班Day1]

    题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第2.4行和第2.4.5列交叉位置的元素 ...

  4. 洛谷P2327 [SCOI2005]扫雷 [2017年5月计划 清北学堂51精英班Day1]

    P2327 [SCOI2005]扫雷 题目描述 输入输出格式 输入格式: 第一行为N,第二行有N个数,依次为第二列的格子中的数.(1<= N <= 10000) 输出格式: 一个数,即第一 ...

  5. 2017 济南精英班 Day1

    不管怎么掰都是n*m-1 #include<cstdio> using namespace std; int main() { freopen("bpmp.in",&q ...

  6. 2017 清北学堂 Day 6终极考试报告

    预计分数: 100+70+70 = 240 实际假分数 : 40+80+70= 190  in cena(好吧不得不承认这个分数,,,,,,=.=) 实际真分数 : 100+80+100 = 280 ...

  7. 10.27night清北刷题班

    /* 枚举每个部分的总和,利用前缀和进行检验. 如果能分成4部分就一定能分成2部分,就筛了一边素数优化.清空数组!!! */ #include<bits/stdc++.h> #define ...

  8. 清北刷题班day3 morning

    P99zhx: 竞赛时间:???? 年?? 月?? 日??:??-??:??题目名称 a b c名称 a b c输入 a.in b.in c.in输出 a.out b.out c.out每个测试点时限 ...

  9. 清北学堂学习总结 day1 数据结构 练习

    1.二叉搜索树 STL set直接做就可以了 2.树状数组+差分数列: codevs 1081 线段树练习 2  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Maste ...

随机推荐

  1. Java中的自动转换

    特点: 1. 系统自动完成的,不需要程序员手动修改代码 2.将 取值范围小的类型 自动提升为 取值范围大的类型 注意: 整数类型直接写会默认为int  小数类型直接写默认为double 类型的范围大小 ...

  2. 面试官:精通 Mybatis?请回答下这几个问题

    点关注,不迷路:持续更新Java架构相关技术及资讯热文!!! Mybatis是现在非常主流的持久层框架,虽然平时用的多,但是其中几个细节的问题,能说出个所以然来不? 一.最常见,参数中 #{} 和 $ ...

  3. 洛谷 P1328 生活大爆炸版石头剪刀布 模拟

    很简单 Code: #include<cstdio> #include<queue> using namespace std; queue<int>A; queue ...

  4. 在asyncio 中跳出正在执行的task

    需求描述 代码在asyncio的框架中运行, 但是一旦一个task出现了长时间的堵塞,我们要跳过这个task(代码可能是用户输入的,例如用户编写的插件) 代码如下 (其中大部分代码出自官方的 asyn ...

  5. css3 3d  魔方

    <style><!--@charset "UTF-8"; * { margin: 0; padding: 0 } html,body{ width: 100%; ...

  6. 洛谷P1428 小鱼比可爱

    题目描述 人比人,气死人:鱼比鱼,难死鱼.小鱼最近参加了一个"比可爱"比赛,比的是每只鱼的可爱程度.参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只 ...

  7. Python学习笔记(2)操作符和数据类型

    2019-02-25 一: (1)常用操作符: ① 算数操作符:=.-.*./.%(求余).**(幂运算).//(地板除法:计算结果取比商小的最大整型) 注意:幂运算操作符比其左侧的一元运算符的优先级 ...

  8. C#实现简单的串口通信

    前言 本着学习研究的态度,用c#语言实现简单的串口通信工具. 一.串口通信原理 串口通信 串口通信(Serial Communications)的概念非常简单,串口按位(bit)发送和接收字节.尽管比 ...

  9. [SharePoint][SharePoint Designer 入门经典]Chapter8 XSLT数据试图和表单

    本章概要: 1.不是利用XSLT web部件 2.使用XSLT web部件创建数据试图 3.使用XSLT表单web部件创建自定义表单 4.利用自定义动作执行列表表单

  10. etymology-R

    1)vor = to eat devour vt. 狼吞虎咽地吃光: 吞没,毁灭: 目不转睛地看[de-向下+vour-吃] voracity  n.贪食,贪婪.拉丁词根vor-,vorac-表示吞食 ...