概述
训练结果:金(Rank.13).
Ac题数:8.
tot tiime:1318.
流水账:
开场日常爆炸,最水最简单的题还Wa了一发= =.
30分钟过了3个题,手速还是蛮快的。
然后就是一段长达接近两个半小时的不出题阶段。
AE各Wa了一发,F,TLE了一发。
全程交替,没过题。
直到队长彻底的放弃了E题,我接手切掉(老OJ不开O2加速,只要用Map就TLE也是带来两发罚时很不开心),然后过掉A(队长推出正确式子).再之后讨论了一下F是不是单组输入问题,改掉之后果然过了。然后Java写了一发大数过掉了C.
三十分钟就连续过了4个题= =
日常,日常。
最后剩下一个多小时队长写掉了字典树,Splay不会H就放着了。
最后八题。
题解:
A:一道推公式的组合数学,不难。我是萌萌哒A题题解
B:全场签到水题
C:Java大数随便谢谢就行。(妈蛋我处女Java题= =)
D:分形Dfs.(贴上队长代码)
#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <string.h>
typedef long long int LL;
using namespace std;
const int N
= 1e6+7;
const int MOD = 1e9+7;
/********************************************/
char a[3333][3333];
int mypow(int a,int b){
int res=1ll;
while(b){
if(b&1) res=res*a;
a=a*a,b>>=1;
}
return res;
}
void dayin(int cur,int x,int y){
if(cur==1){
a[x][y]='/';
a[x+1][y-1]='/';
a[x][y+1]='\';
a[x+1][y+2]='\';
a[x+1][y+1]='_';
a[x+1][y]='_';
return ;
}
int h = mypow(2,cur);
//
int l = mypow(2,cur+1);
dayin(cur-1,x,y);
dayin(cur-1,x+h/2,y-h/2);
dayin(cur-1,x+h/2,y+h/2);
}
int n;
int main(){
int flag = 0;
while(~scanf("%d",&n)&&n){
if(flag) puts("");flag=1;
memset(a,' ',sizeof(a));
int h=mypow(2,n);
int l=mypow(2,n+1);
//
printf("%d %dn",h,l);
dayin(n,1,l/2);
for(int i=1;i<=h;i++){
for(int j=l;j;j--){
if(a[i][j]!=' '){
a[i][j+1]='