• 【习题 3-5 UVA-227】Puzzle


    【链接】 我是链接,点我呀:)
    【题意】

    在这里输入题意

    【题解】

    模拟题。。 输入稍微恶心了点。 getchar()一个一个搞就好。

    【代码】

    #include <bits/stdc++.h>
    using namespace std;
    
    const int N = 5;
    
    string s[N + 5],s2;
    char S[N + 5][N + 5];
    int x, y;
    
    bool ok()
    {
    	bool ok = true;
    	for (char key = getchar();key !='0';key = getchar())
    	{
    		if (!ok) continue;
    		int x2 = x, y2 = y;
    		switch (key)
    		{
    			case 'A':
    			{
    				x2--;
    				break;
    			}
    			case 'B':
    			{
    				x2++;
    				break;
    			}
    			case 'L':
    			{
    				y2--;
    				break;
    			}
    			case 'R':
    			{
    				y2++;
    				break;
    			}
    		default:
    			break;
    		}
    		if (x2 <= 0 || x2 >= 6 || y2 <= 0 || y2 >= 6) {
    			ok = false; continue;
    		}
    		swap(S[x][y], S[x2][y2]);
    		x = x2, y = y2;
    	}
    	getchar();
    	return ok;
    }
    
    int main()
    {
    	/*freopen("F:\rush.txt", "r", stdin);*/
    	int kase = 0;
    	while (getline(cin,s[1]) && s[1][0]!='Z')
    	{
    		if (kase > 0) puts("");
    		kase++;
    		printf("Puzzle #%d:
    ",kase);
    		for (int i = 2; i <= 5; i++) getline(cin, s[i]);
    		for (int i = 1; i <= 5; i++)
    			for (int j = 1; j <= 5; j++)
    			{
    				S[i][j] = s[i][j - 1];
    				if (S[i][j] == ' ')
    				{
    					x = i, y = j;
    				}
    			}
    
    		if (ok())
    		{
    			for (int i = 1; i <= 5; i++)
    				for (int j = 1; j <= 5; j++)
    				{
    					cout << S[i][j];
    					if (j == 5) cout << endl;
    					else cout << ' ';
    				}
    		}
    		else 
    			cout << "This puzzle has no final configuration." << endl;
    	}
    	return 0;
    }
    
  • 相关阅读:
    友盟消息推送api、python sdk问题、测试demo代码
    Django的时区设置问题
    优酷视频上传api及demo代码
    git回滚线上代码
    charles的使用
    django+ajax用FileResponse文件下载到浏览器过程中遇到的问题
    scrapy框架
    几个简单的算法
    SQLAlchemy
    redis
  • 原文地址:https://www.cnblogs.com/AWCXV/p/7688350.html
Copyright © 2020-2023  润新知