我们生而属|

KukCair

园龄:1年粉丝:0关注:1

关于压行/最短解——你可能不知道的循环优化

前(fei)言(hua)

某人压行压得我代码都不认识了。

这 Code Golf 非要不可吗

for 循环,真神!

正文

先讲 for 循环是如何运行的。

for(/*=在循环外操作,定义只能在循环内使用*/; /*条件*/; /*每次循环最后的操作*/){
	//todo...
}

于是根据原理而得到以下优化。

(理论时间复杂度、空间复杂度一样,但长度变短)

  • for 代替 while
while(t--)

—>

for(;t--;)
while(s.size())s.pop();

—>

for(;s.size();s.pop());
  • for 内输入
for(int i=1;i<=n;i++)cin>>a[i];

—>

for(int i=1;i<=n;cin>>a[i++]);
  • for 内输出
for(int i=1;i<=n;i++)cout<<a[i];

—>

for(int i=1;i<=n;cout<<a[i++]);
  • t 次询问,末尾换行
int t;cin>>t;while(t--) ...,cout<<'\n';

—>

int t;for(cin>>t;t;t--,puts(""))...;

The Last

while 是什么辣鸡玩意儿啊。

for 闪,拜 for!

End.


PS:

使用 40%for长度优化+30%手写栈+20%define+10%删空格/换行

——让某原本 593B 代码变成了 254B,but 还是没有 Code Golf。

posted @   KukCair  阅读(11)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起