提交时间:2024-10-04 16:22:06

运行 ID: 33182

#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; }