博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
考试反思(2019/1/22)
阅读量:5075 次
发布时间:2019-06-12

本文共 3289 字,大约阅读时间需要 10 分钟。

今天是noip2017d2测验

因为没开longlong写挂t1是一种什么样的体验???

1.奶酪

因为最近在练dfs,就十分钟写出dfs然后过了样例就交了不管了。

就不放代码了,看下次再写还记不记得开longlong

2.宝藏

其实之前刷状压时做过,写起来还好,中间因为剪错了枝,一度调试到不知所措。

1 const int maxn=1e4+5; 2 int f[1<<12],d[20],e[20][20]; 3 int n,m,ans=0x3f3f3f3f,num; 4 void read() 5 { 6     memset(e,0x3f,sizeof(e)); 7     n=quick(); 8     m=quick(); 9     int x,y,l;10     for(int i=1;i<=m;i++)11     {12         x=quick();13         y=quick();14         l=quick();15         e[x][y]=e[y][x]=min(e[x][y],l);16     }17 }18 void dfs(int now)19 {20     //printf("%d\n",now); 21     if(num==n)22     {23         ans=min(ans,f[(1<
f[(1<
Code

3.列队

先写了个30分代码,然后考试剩下的一个多小时全花在攻克n==1那4组数据上了,用鬼畜的线段树没有做出来,不过好歹练习了下线段树模版

30分+失败的线段树

1 const int maxn=1e6+5;  2 int n,m,q,ans,mark1,mark2;  3 int a[1005][1005];  4 int sum[maxn],lazytag[maxn],b[maxn];  5 void build(int l,int r,int x,int y,int z)  6 {  7     if(x==y)  8     {  9         if(x==m) 10             mark1=z; 11         sum[z]=0; 12         return; 13     } 14     int j=(x+y)>>1; 15     build(l,r,x,j,z<<1); 16     build(l,r,j+1,y,z<<1|1); 17 } 18 void pushdown(int x,int y,int z) 19 { 20     if(!lazytag[z]) 21         return; 22     lazytag[z<<1]=lazytag[z<<1|1]=lazytag[z]; 23     lazytag[z]=0;  24 } 25 void query(int u,int x,int y,int z) 26 {    27     if(u==x&&u==y) 28     { 29         ans=b[u+lazytag[z]]; 30         return; 31     } 32     pushdown(x,y,z); 33     int j=(x+y)>>1; 34     if(u<=j) 35         query(u,x,j,z<<1); 36     if(u>j) 37         query(u,j+1,y,z<<1|1); 38       39 } 40 void change1(int l,int r,int x,int y,int z) 41 { 42     if(l<=x&&r>=y) 43     { 44         lazytag[z]++; 45         return; 46     } 47     pushdown(x,y,z); 48     int j=(x+y)>>1; 49     if(l<=j) 50         change1(l,r,x,j,z<<1); 51     if(r>j) 52         change1(l,r,j+1,y,z<<1|1); 53 } 54 void change2(int u,int x,int y,int z) 55 { 56     if(u==x&&u==y) 57     { 58         lazytag[mark1]+=b[u]-b[m+lazytag[mark1]]; 59         return; 60     } 61     pushdown(x,y,z); 62     int j=(x+y)>>1; 63     if(u<=j) 64         change2(u,x,j,z<<1); 65     if(u>j) 66         change2(u,j+1,y,z<<1|1); 67 } 68 int main() 69 { 70     input(); 71     n=quick(); 72     m=quick(); 73     q=quick(); 74     if(n!=1&&n<=1000&&m<=1000) 75     { 76         for(int i=1;i<=n;i++) 77             for(int j=1;j<=m;j++) 78                 a[i][j]=(i-1)*m+j; 79             int x,y; 80         for(int i=1;i<=q;i++) 81         { 82             x=quick(); 83             y=quick(); 84             printf("%d\n",a[x][y]); 85             int t=a[x][y]; 86             for(int i=y+1;i<=m;i++) 87                 a[x][i-1]=a[x][i]; 88             for(int i=x+1;i<=n;i++) 89                 a[i-1][m]=a[i][m]; 90             a[n][m]=t;  91         } 92     } 93     if(n==1) 94     { 95         for(int i=1;i<=m;i++) 96             b[i]=i; 97         build(1,m,1,m,1); 98         int x,y; 99         for(int i=1;i<=q;i++)100         {101             x=quick();102             y=quick();103             query(y,1,m,1);104             if(ans%m>0)105                 ans%=m;106             printf("%d\n",ans);107             change1(y,m-1,1,m,1);108             change2(ans,1,m,1);109         }110     }111     return 0;112 }
Code

 

转载于:https://www.cnblogs.com/Achensy/p/10304206.html

你可能感兴趣的文章
HPUX修改disk实例号--11.31only
查看>>
linux运维、架构之路-Docker快速入门
查看>>
从人脑研究入手_使人工智能不再“四肢发达_头脑简单”
查看>>
centos6.8上PHP5.3升级到PHP5.4及更高版本方法
查看>>
django -----分页器组件
查看>>
win10家庭版添加本地账户方法
查看>>
Git学习笔记1---基础
查看>>
【转】微服务实践(七):从单体式架构迁移到微服务架构
查看>>
Vue开发中数据交互解决跨域问题
查看>>
qwb VS 去污棒 可持续化01字典树
查看>>
二叉树中和为某一值的路径
查看>>
ArrayList的toArray
查看>>
spring消费RESTfull服务
查看>>
Centos7通过yum安装nginx
查看>>
Darwin Streaming Server性能测试报告
查看>>
EasyDarwin开源流媒体服务器提供的TS切片/HLS直播打包库
查看>>
golang的安装
查看>>
hornor8改user模式为debug模式
查看>>
L0、L1与L2范数、核范数(转)
查看>>
centos7配置ftp服务器
查看>>