生活随笔
收集整理的這篇文章主要介紹了
寒假每日一题(入门组)【week2 完结】
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
目錄
- 756. 蛇形矩陣【模擬】
- 1113. 紅與黑【dfs】
- 1346. 回文平方【模擬】
- 680. 剪繩子【二分】
- 1227. 分巧克力【二分】
- 422. 校門外的樹(shù)【差分】
- 429. 獎(jiǎng)學(xué)金【模擬】
756. 蛇形矩陣【模擬】
https://www.acwing.com/problem/content/758/
#include<bits/stdc++.h>
using namespace std
;
const int N
=110;
int a
[N
][N
],n
,m
;
int dx
[4]={0,1,0,-1};
int dy
[4]={1,0,-1,0};
int main(void)
{cin
>>n
>>m
;int k
=0,x
=0,y
=0,d
=0;while(k
<n
*m
){k
++;a
[x
][y
]=k
;int tempx
=x
+dx
[d
],tempy
=y
+dy
[d
];if(tempx
<0||tempx
>=n
||tempy
<0||tempy
>=m
||a
[tempx
][tempy
]) d
=(d
+1)%4;x
=x
+dx
[d
],y
=y
+dy
[d
];}for(int i
=0;i
<n
;i
++){for(int j
=0;j
<m
;j
++) cout
<<a
[i
][j
]<<" ";cout
<<endl
;}return 0;
}
1113. 紅與黑【dfs】
https://www.acwing.com/problem/content/1115/
#include<bits/stdc++.h>
using namespace std
;
const int N
=1e2+10;
int n
,m
,ans
,st
[N
][N
];
string s
[N
];
int dx
[4]={-1,0,0,1};
int dy
[4]={0,-1,1,0};
void dfs(int x
,int y
)
{ans
++;st
[x
][y
]=1;for(int i
=0;i
<4;i
++){int tempx
=x
+dx
[i
];int tempy
=y
+dy
[i
];if(tempx
<0||tempx
>=n
) continue;if(tempy
<0||tempy
>=m
) continue;if(st
[tempx
][tempy
]) continue;if(s
[tempx
][tempy
]!='.') continue;dfs(tempx
,tempy
);}
}
int main(void)
{while(cin
>>m
>>n
,n
!=0&&m
!=0){ans
=0;memset(st
,0,sizeof st
);for(int i
=0;i
<n
;i
++) cin
>>s
[i
];for(int i
=0;i
<n
;i
++){for(int j
=0;j
<m
;j
++){if(!st
[i
][j
]&&s
[i
][j
]=='@') dfs(i
,j
);}}cout
<<ans
<<endl
;}return 0;
}
1346. 回文平方【模擬】
https://www.acwing.com/problem/content/1348/
#include<bits/stdc++.h>
using namespace std
;
int n
;
char get(int x
)
{if(x
<10) return '0'+x
;else return 'A'+x
-10;
}
void solve(int x
)
{string a
,b
,c
;int temp
=x
;while(temp
)a
+=get(temp
%n
),temp
/=n
;temp
=x
*x
;while(temp
)b
+=get(temp
%n
),temp
/=n
;c
=b
;reverse(a
.begin(),a
.end());reverse(c
.begin(),c
.end());if(b
==c
) cout
<<a
<<" "<<b
<<endl
;
}
int main(void)
{cin
>>n
;for(int i
=1;i
<=300;i
++) solve(i
);return 0;
}
680. 剪繩子【二分】
https://www.acwing.com/problem/content/682/
#include<bits/stdc++.h>
using namespace std
;
const int N
=1e5+10;
double a
[N
];
int n
,m
;
bool check(double mid
)
{int cnt
=0;for(int i
=0;i
<n
;i
++) cnt
+=a
[i
]/mid
;return cnt
>=m
;
}
int main(void)
{cin
>>n
>>m
;for(int i
=0;i
<n
;i
++) cin
>>a
[i
];double l
=0,r
=1e9;while(r
-l
>1e-4){double mid
=(l
+r
)/2;if(check(mid
)) l
=mid
;else r
=mid
;}printf("%.2lf",l
);return 0;
}
1227. 分巧克力【二分】
https://www.acwing.com/problem/content/1229/
#include<bits/stdc++.h>
using namespace std
;
const int N
=1e5+10;
int a
[N
],b
[N
],n
,m
;
bool check(int mid
)
{int cnt
=0;for(int i
=0;i
<n
;i
++) cnt
+=(a
[i
]/mid
)*(b
[i
]/mid
);return cnt
>=m
;
}
int main(void)
{cin
>>n
>>m
;for(int i
=0;i
<n
;i
++) cin
>>a
[i
]>>b
[i
];int l
=0,r
=1e9;while(l
<r
){int mid
=l
+r
+1>>1;if(check(mid
)) l
=mid
;else r
=mid
-1;}cout
<<l
;return 0;
}
422. 校門外的樹(shù)【差分】
https://www.acwing.com/problem/content/424/
#include<bits/stdc++.h>
using namespace std
;
const int N
=1e5+10;
int a
[N
],n
,m
;
int add(int l
,int r
,int c
)
{a
[l
]+=c
;a
[r
+1]-=c
;
}
int main(void)
{cin
>>n
>>m
;while(m
--){int l
,r
; cin
>>l
>>r
;add(l
,r
,-1);}int cnt
=0,sum
=0;for(int i
=0;i
<=n
;i
++) {sum
+=a
[i
];if(sum
>=0) cnt
++;}cout
<<cnt
;return 0;
}
429. 獎(jiǎng)學(xué)金【模擬】
https://www.acwing.com/problem/content/431/
#include<bits/stdc++.h>
using namespace std
;
struct node{int id
,a
,b
,c
,sum
;};
vector
<node
>ve
;
int n
;
bool cmp(node a
,node b
)
{if(a
.sum
!=b
.sum
) return a
.sum
>b
.sum
;if(a
.a
!=b
.a
) return a
.a
>b
.a
;return a
.id
<b
.id
;
}
int main(void)
{cin
>>n
;for(int i
=1;i
<=n
;i
++){int a
,b
,c
; cin
>>a
>>b
>>c
;ve
.push_back({i
,a
,b
,c
,a
+b
+c
});}sort(ve
.begin(),ve
.end(),cmp
);for(int i
=0;i
<min(n
,5);i
++) cout
<<ve
[i
].id
<<" "<<ve
[i
].sum
<<endl
;return 0;
}
總結(jié)
以上是生活随笔為你收集整理的寒假每日一题(入门组)【week2 完结】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。