Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
33182 | 22fhq | 【S】T3 | C++ | 解答错误 | 86 | 2029 MS | 372352 KB | 1673 | 2024-10-04 16:22:06 |
#include<bits/stdc++.h> #define int long long using namespace std; string s; int k,lstans,dtans,lstdtans; set<pair<int,int>>vis; signed main(){ //freopen("loop.in","r",stdin); //freopen("loop.out","w",stdout); cin>>s>>k; int x=0,y=0; vis.insert({0,0}); for(auto c:s){ switch (c) { case 'U': y++; vis.insert({x,y}); break; case 'D': y--; vis.insert({x,y}); break; case 'R': x++; vis.insert({x,y}); break; case 'L': x--; vis.insert({x,y}); break; } } // cout<<vis.find({0,0})->first; lstans=vis.size(); k--; int cnt=0; while(k){ for(auto c:s){ switch (c) { case 'U': y++; vis.insert({x,y}); break; case 'D': y--; vis.insert({x,y}); break; case 'R': x++; vis.insert({x,y}); break; case 'L': x--; vis.insert({x,y}); break; } } lstdtans=dtans; dtans=vis.size()-lstans; lstans=vis.size(); k--; cnt++; if(dtans==lstdtans&&cnt>4)break; } // cout<<vis.size()<<" "<<k<<" "<<dtans<<endl; cout<<vis.size()+k*dtans; // cerr<<sizeof(vis)/1024/1024; // cerr<<clock()*1.0/CLOCKS_PER_SEC<<"s\n"; return 0; }