• 【CF】Codeforces1301D_Time to run


    题面

    Codeforces1301E

    题解

    • 这道题做法很多。也不难。
    • 只要你能想到如何把他密铺就行了。
    • 我的想法是D(n-1),U(n-1),(LDR(n-1),R1,U(n-1))(m-1),L*(m-1)。
    • 简直完美
    • 只是,出事情了。题目中有这么一句话: print an integer (f(1leq fleq 10^9)),但是我输出了0。

    代码

    #include<bits/stdc++.h>
    #define LL long long
    #define MAXN 1000000
    using namespace std;
    template<typename T>void Read(T &cn)
    {
    	char c;int sig = 1;
    	while(!isdigit(c = getchar()))if(c == '-')sig = -1; cn = c-48;
    	while(isdigit(c = getchar()))cn = cn*10+c-48; cn*=sig;
    }
    template<typename T>void Write(T cn)
    {
    	if(cn < 0) {putchar('-'); cn = 0-cn; }
    	int wei = 0; T cm = 0; int cx = cn%10; cn/=10;
    	while(cn)cm = cm*10+cn%10,cn/=10,wei++;
    	while(wei--)putchar(cm%10+48),cm/=10;
    	putchar(cx+48);
    }
    int z[4] = {'U', 'D', 'L', 'R'};
    int n,m,k;
    char c[MAXN+1];
    int clen, glen;
    void kong() {clen = glen = 0; }
    void rel() {Write(glen); puts(""); for(int i = 1;i<=clen;i++) putchar(c[i]); }
    void jc(char cn) {c[++clen] = cn; }
    void Wr_n(int cn) 
    {
    	if(cn < 0) {jc('-'); cn = 0-cn; }
    	int wei = 0; int cm = 0; int cx = cn%10; cn/=10;
    	while(cn)cm = cm*10+cn%10,cn/=10,wei++;
    	while(wei--)jc(cm%10+48),cm/=10;
    	jc(cx+48);	
    }
    void chu1(int cn, int cm) {if(!cn) return; glen++; Wr_n(cn); jc(' '); jc(z[cm]); jc('
    '); }
    void chu2(int cn, int cm,int cx) {if(!cn) return; glen++; Wr_n(cn); jc(' '); jc(z[cm]); jc(z[cx]); jc('
    '); }
    void chu3(int cn, int cm,int cx,int cy) {if(!cn) return; glen++; Wr_n(cn); jc(' '); jc(z[cm]); jc(z[cx]); jc(z[cy]); jc('
    '); }
    int zou1(int cn, int cm)
    {
    	if(cm >= k) {
    		chu1(k,cn); k -= k;
    		return 1;
    	}
    	chu1(cm,cn); k -= cm;
    	return 0;
    }
    int zou3(int cn1, int cn2, int cn3, int cm)
    {
    	if(cm*3 < k) {
    		chu3(cm,cn1,cn2,cn3); k -= cm*3;
    		return 0;
    	}
    	int ge = k/3; k = k%3;
    	chu3(ge,cn1,cn2,cn3);
    	if(k == 0) return 1;
    	if(k == 1) {chu1(1,cn1); return 1; }
    	if(k == 2) {chu2(1,cn1,cn2); return 1; }
    }
    int main1()
    {
    	Read(n); Read(m); Read(k);
    	if((n-1)*m*2 + n*(m-1)*2 < k) {puts("NO"); return 1; }
    	puts("YES");
    	if(n > m) {swap(z[0], z[2]); swap(z[1], z[3]); swap(n, m); }
    	kong();
    	if(n == 1) {
    		if(k <= m-1) {
    			chu1(k,3);
    			return 0;
    		}
    		else {
    			chu1(m-1,3);
    			chu1(k-m+1,2);
    			return 0;
    		}
    	}
    	if(zou1(3,m-1)) return 0;
    	if(zou1(2,m-1)) return 0;
    	for(int i = 2;i<=n;i++)
    	{
    		if(zou3(1,3,0,m-1)) return 0;
    		if(zou1(1,1)) return 0;
    		if(zou1(2,m-1)) return 0;
    	}
    	if(zou1(0,n-1)) return 0;
    	return 0;
    }
    int main() {if(!main1()) rel(); }
    
  • 相关阅读:
    JQuery0007:JQuery跨域无刷新分页
    H5_0034:toast提示
    H5_0032:chrome以窗口模式运行(无地址栏与标签栏)
    H5_0031:浏览器弹窗
    JN_0022:VSCode操作技巧 去除空行 去掉换行付
    JQuery0003:事件触发与解除
    CSS0001: CSS判断手机 平板 PC
    Web_0006:阿里云服务器OSS缓存设置清理
    H5_0030:iframe 全屏嵌入,父级获取iframe中嵌入的dom对象
    JN_0020:Chrome保存整个网页为图片
  • 原文地址:https://www.cnblogs.com/czyarl/p/12332998.html
Copyright © 2020-2023  润新知