C、Grid game 【 Codeforces Round #534 (Div. 2) 】
div Grid round Codeforces Game
2023-06-13 09:17:22 时间
题意:给你一个4 × 4 的方格,然后给你一些1 × 2 或者 2 × 1的小方格,当这些方格在一行或者一列的时候会消除掉,问最佳放置位置。
思路:QAQ,什么时候思维会变强一些。选定一些地方,只放这几个地方就可以了。两个 flag ,分别是放置行和列的标记,如果没放之前,假设先来到是竖的, 所以先放到上面位置 [ 1 , 4 ],如果再来一个竖的,那么就可以放到下面消掉了,即位置是 [ 3, 4 ]。如果来的不是竖的,而是横的,我们可以放到 [ 4 , 1 ] 或者 [ 4 , 3 ],为了防止后来的第三个可能是竖的,如果放在 [ 4 , 3 ] 没法消掉,所以先放到前面就可以避免了。
代码:
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
char s[2000];
int main()
{
while(~scanf("%s", s))
{
int len = strlen(s);
bool h,l;
h = false;
l = false;
for(int i = 0; i < len; i ++)
{
if(s[i] == '0')
{
if(l)
{
printf("3 4\n");
l = false;
}
else
{
printf("1 4\n");
l = true;
}
}
else if(s[i] == '1')
{
if(h)
{
printf("4 3\n");
h = false;
}
else
{
printf("4 1\n");
h = true;
}
}
}
}
return 0;
}
栈模拟。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
char s[200000];
int main()
{
while(~scanf("%s", s)){
int i = 0;
int j = 1;
int pos = 1;
bool flag = false;
int len = strlen(s);
stack<char>st;
while(1){
flag = false;
for(i = 0 ; i < len; i ++){
if(st.empty()){
st.push(s[i]);
}
else {
if(s[i] == st.top()){
pos = -pos;
st.pop();
flag = true;
}
else {
st.push(s[i]);
}
}
}
for(len = 0;!st.empty(); len ++){
s[len] = st.top();
st.pop();
}
if(!flag) break;
}
if(pos == 1)printf("No\n");
else printf("Yes\n");
}
return 0;
}
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
int n;
while(scanf("%d", &n) != EOF){
printf("%d\n",n);
for(int i = 0; i < n - 1; i ++)printf("1 ");
printf("1\n");
}
return 0;
}
相关文章
- Codeforces Round #828 (Div. 3) (A~D)
- Grid布局 容器属性(一) `grid-template`系列属性
- HTML <div> 标签
- 利用Oracle Grid提高数据库性能(oracle中的grid)
- computing不受天限Oracle Grid Computing之旅(oracle中 grid)
- Div上下居中
- div布局的自由伸展三栏式版面的代码
- div层跨越iframe帧显示在上面的解决方法附代码
- js鼠标拖动对象可让任何div实现拖动效果
- Javascript实现的类似Google的Div拖动效果代码
- js点击页面其它地方将某个显示的DIV隐藏
- jquery显示和隐藏div特效实例
- jquery实现div阴影效果示例代码
- jquery简单实现滚动条下拉DIV固定在头部不动
- JS+DIV实现鼠标划过切换层效果的实例代码
- jQuery拖拽div实现思路