提出 #72897701
ソースコード 拡げる
#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize("Ofast,unroll-loops,no-stack-protector,fast-math")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#define F first
#define S second
#define mp make_pair
#define eb emplace_back
#define pb push_back
#define rep(X,a,b) for(ll X=a;X<b;++X)
#define ALL(a) (a).begin(), (a).end()
#define SZ(a) (ll)(a).size()
#define mem(a) memset(a,0,sizeof(a))
#define INF 9e18
#define EPS 1e-22
#define lc id<<1
#define rc (id<<1)+1
#define ln seg[id].lnd
#define rn seg[id].rnd
#define error(args...) { string _s = #args; replace(_s.begin(), _s.end(), ',', ' '); stringstream _ss(_s); istream_iterator<string> _it(_ss); err(_it, args); }
typedef long long ll;
typedef pair<ll,ll> pll;
typedef pair<pll,pll> pllll;
typedef long double ld;
typedef pair<ld,ld> pdd;
void err(istream_iterator<string> it) {}
template<typename T, typename... Args>
void err(istream_iterator<string> it, T a, Args... args) {
cerr << *it << " = " << a << endl;
err(++it, args...);
}
pdd operator-(const pdd &a,const pdd &b){
return mp(a.F-b.F,a.S-b.S);
}
double cross(const pdd &a,const pdd &b){
return a.F*b.S-a.S*b.F;
}
struct maxFenwick {
int n;
vector<int> s;
int lowbit(int x) { return x & -x; }
maxFenwick(int _n) {
n = _n + 1;
s.clear(), s.resize(n, 0);
}
void update(int i, int v) {
for (; i < n; i += lowbit(i))
s[i] =max(s[i],v);
}
int query(int x) {
int pre = -1;
for (; x; x -= lowbit(x))
pre=max(pre, s[x]);
return pre;
}
maxFenwick(vector<int> a) {
n = a.size();
s.clear(), s.resize(n + 1, 0);
for (int i = 1; i <= n; i++)
update(i, a[i - 1]);
}
};
typedef struct linkNode{
int val;
struct linkNode *back=nullptr,*next=nullptr;
}LinkNode;
typedef struct ball{
ll size;
struct ball *boss=nullptr;
}Ball;
Ball *find(Ball *_ball){
if(_ball==nullptr)return nullptr;
if(_ball->boss==_ball)return _ball;
Ball *ret=find(_ball->boss);
return ret;
}
void ballunion(Ball *u,Ball *v){
Ball *ub=find(u),*vb=find(v);
if(ub==vb)return;
if(ub->size>vb->size)vb->boss=ub,ub->size+=vb->size;
else ub->boss=vb,vb->size+=ub->size;
}
ll gcd(ll _a,ll _b){return _b?gcd(_b,_a%_b):_a;}
double dqpow(double _x, ll _y){
double _output=1;
while(_y){
if(_y&1)_output*=_x;
_x*=_x;
_y>>=1;
}
return _output;
}
ll qpow(ll _x, ll _y,ll _P){
ll _output=1;
while(_y){
if(_y&1)_output=(_output*_x)%_P;
_x=(_x*_x)%_P;
_y>>=1;
}
return _output;
}
ll v2(ll _x){
return _x&-_x;
}
struct Node{
ll info;
};
Node seg[800005];
void pull(ll id){seg[id].info=min(seg[lc].info,seg[rc].info);}
void modify(ll pos,ll v,ll L,ll R,ll id){
if(pos==L&&R==pos){
seg[id].info=v;
return;
}
ll M=L+R>>1;
if(pos<=M)modify(pos, v, L, M, lc);
else modify(pos, v, M + 1, R, rc);
pull(id);
}
ll query(ll l,ll r,ll L,ll R,ll id){
if(l <= L && R <= r) return seg[id].info;
int M=L+R>>1;
if(r <= M) return query(l, r, L, M, lc);
else if(l > M) return query(l, r, M + 1, R, rc);
else return min(query(l, r, L, M, lc),query(l, r, M + 1, R, rc));
}
char s[3005];
ll a[3005][3005],nxt[3005][3005],dp[3005][3005];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
ll T;
scanf("%lld",&T);
while(T--){
ll n,c;
scanf("%lld%lld",&n,&c);
--c;
rep(i,0,n){
scanf("%s",s);
rep(j,0,n){
a[i][j]=s[j]=='#';
}
}
rep(j,0,n){
ll pre=-1;
rep(i,0,n)if(a[i][j]){
if(pre!=-1)nxt[pre][j]=i;
pre=i;
}
nxt[pre][j]=n;
}
for(ll i=n-1;i>=0;--i){
rep(j,0,n){
if(i==n-1)dp[i][j]=j==c;
else if(a[i][j]&&nxt[i][j]!=n){
if(dp[nxt[i][j]][j])dp[i][j]=1;
else dp[i][j]=0;
}
else{
if(j&&dp[i+1][j-1]||dp[i+1][j]||j<n-1&&dp[i+1][j+1])dp[i][j]=1;
else dp[i][j]=0;
}
if(!i)printf("%lld",dp[i][j]);
}
}
printf("\n");
}
return 0;
}
提出情報
コンパイルエラー
./Main.cpp: In function 'void err(std::istream_iterator<std::__cxx11::basic_string<char> >)':
./Main.cpp:27:35: warning: unused parameter 'it' [-Wunused-parameter]
27 | void err(istream_iterator<string> it) {}
| ~~~~~~~~~~~~~~~~~~~~~~~~~^~
./Main.cpp: In function 'void modify(ll, ll, ll, ll, ll)':
./Main.cpp:131:11: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
131 | ll M=L+R>>1;
| ~^~
./Main.cpp: In function 'll query(ll, ll, ll, ll, ll)':
./Main.cpp:139:12: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
139 | int M=L+R>>1;
| ~^~
./Main.cpp: In function 'int main()':
./Main.cpp:181:25: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
181 | if(j&&dp[i+1][j-1]||dp[i+1][j]||j<n-1&&dp[i+1][j+1])dp[i][j]=1;
| ~^~~~~~~~~~~~~~
./Main.cpp:181:58: warning: suggest parentheses around '&&' within '||' [-Wparentheses]
181 | if(j&&dp[i+1][j-1]||dp[i+1][j]||j<n-1&&dp[i+1][j+1])dp[i][j]=1;
| ~~~~~^~~~~~~~~~~~~~
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
450 / 450 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
sample_01.txt |
| All |
sample_01.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| sample_01.txt |
AC |
1 ms |
3916 KiB |
| test_01.txt |
AC |
12 ms |
3952 KiB |
| test_02.txt |
AC |
17 ms |
3784 KiB |
| test_03.txt |
AC |
26 ms |
3756 KiB |
| test_04.txt |
AC |
33 ms |
3776 KiB |
| test_05.txt |
AC |
41 ms |
3844 KiB |
| test_06.txt |
AC |
50 ms |
3764 KiB |
| test_07.txt |
AC |
60 ms |
3844 KiB |
| test_08.txt |
AC |
70 ms |
3844 KiB |
| test_09.txt |
AC |
82 ms |
3844 KiB |
| test_10.txt |
AC |
94 ms |
3908 KiB |
| test_11.txt |
AC |
107 ms |
3904 KiB |
| test_12.txt |
AC |
120 ms |
3896 KiB |
| test_13.txt |
AC |
124 ms |
3912 KiB |
| test_14.txt |
AC |
92 ms |
4148 KiB |
| test_15.txt |
AC |
74 ms |
9416 KiB |
| test_16.txt |
AC |
73 ms |
9416 KiB |
| test_17.txt |
AC |
236 ms |
214964 KiB |
| test_18.txt |
AC |
199 ms |
215116 KiB |
| test_19.txt |
AC |
199 ms |
214968 KiB |
| test_20.txt |
AC |
232 ms |
214976 KiB |
| test_21.txt |
AC |
177 ms |
215124 KiB |
| test_22.txt |
AC |
117 ms |
144580 KiB |
| test_23.txt |
AC |
116 ms |
144840 KiB |
| test_24.txt |
AC |
199 ms |
215152 KiB |
| test_25.txt |
AC |
198 ms |
214928 KiB |
| test_26.txt |
AC |
199 ms |
214984 KiB |
| test_27.txt |
AC |
131 ms |
172060 KiB |
| test_28.txt |
AC |
183 ms |
214988 KiB |
| test_29.txt |
AC |
207 ms |
215236 KiB |
| test_30.txt |
AC |
206 ms |
215140 KiB |
| test_31.txt |
AC |
157 ms |
215036 KiB |
| test_32.txt |
AC |
218 ms |
214976 KiB |
| test_33.txt |
AC |
212 ms |
215068 KiB |
| test_34.txt |
AC |
232 ms |
215124 KiB |
| test_35.txt |
AC |
221 ms |
214976 KiB |
| test_36.txt |
AC |
182 ms |
192356 KiB |
| test_37.txt |
AC |
184 ms |
202956 KiB |
| test_38.txt |
AC |
179 ms |
201400 KiB |
| test_39.txt |
AC |
174 ms |
198356 KiB |
| test_40.txt |
AC |
211 ms |
215140 KiB |
| test_41.txt |
AC |
211 ms |
214968 KiB |
| test_42.txt |
AC |
203 ms |
215044 KiB |
| test_43.txt |
AC |
209 ms |
215124 KiB |
| test_44.txt |
AC |
204 ms |
215096 KiB |
| test_45.txt |
AC |
176 ms |
215068 KiB |
| test_46.txt |
AC |
189 ms |
215036 KiB |
| test_47.txt |
AC |
195 ms |
215124 KiB |