坚持做某一件事,热爱是一个不可缺少的原因。这是真正能提供你源源不断的动力的根本所在。做任何事情也是如此,不是为了争名逐利,只是单纯的享受过程,喜欢某件事情本身,这样即便会带来挫败,也不会让你望而却步或者干脆放弃。
HBTCM寒假第一次积分赛
A – HangOver
题目大意就是求1/2+1/3+…+1/n+1的值大于给的数时,n为多少
代码:
#include<iostream>
#include<cstdlib>
using namespace std;
int main(){
double n,sum;
int t;
while(cin>>n){
if(n==0) break;
sum=0;
for(int i=1;i>=-1;i++){
if(sum>=n) {cout<<t<<" card(s)"<<endl;break;}
t=i;
// cout<<1<<"/"<<t+1<<endl;
sum+=1.0/(t+1)*1.0;
// cout<<sum<<endl;
}
}
return 0;
}
B – 回文数
题目吐槽:此题不需要文件读入读出…..然后是有一个函数itoa可以方便进制转换,可以自己手写,也可以调用,只是不知道为什么老师只给了g++的编译器,而g++编译器恰好只支持atoi不支持itoa,只好手动copy一份百度itoa代码,原itoa在c++中应存在并且头文件为
<stdlib.h>(C++版本:<cstdlib>)
题目理解:进行进制转换
#include<iostream>
#include <string>
#include <string.h>
#include <cstring>
#include <cstdlib>
using namespace std;
bool huiwen(char *s){
int len=strlen(s);
for(int i=0;i<len/2;i++){
if(s[i]==s[len-i-1]) continue;
return false;
}
return true;
}
bool hanshu(int S){
int i,coun=0;
char s[10000];
for(i=2;i<=10;i++){
itoa(S,s,i);
if(huiwen(s)) coun++;
if(coun==2) return true;
}
return false;
}
int main(){
int N,S,coun=0,t;
while(cin>>N>>S){
S++;
cout<<"Case "<<++coun<<":"<<endl;
for(int i=0;i<N;i++){
if(!hanshu(S))
i--;
else cout<<S<<endl;
S++;
}
}
return 0;
}
C – 字数统计
#include<iostream>
#include <string>
#include <string.h>
#include <cstring>
#include <iomanip>
#include <algorithm>
using namespace std;
int s[10000+5][100+5];
int main(){
int N,L,M,i,j,counM,counD,counO,z,coun;
int d[10000+5];
while(cin>>N>>L>>M){
memset(d,0,sizeof(d));
counM=counD=counO=0;
for(i=0;i<N;i++){
for(j=0;j<L;j++){
cin>>s[i][j];
if(s[i][j]==0) counO++;
if(j==1) {
if(s[i][0]==0&&s[i][1]==0) {
counM++;
if(i!=0){
z=L-1;
while(s[i-1][z]==0){
d[i-1]++;
z--;
}
}
}
}
}
}
z=L-1;
while(s[i-1][z]==0){
counO--;
z--;
}
//cout<<counO<<" "<<counM<<endl;
sort(d,d+N);
coun=M-1;
for(i=N-1;i>=N-counM-1;i--){
if(coun--==0) break;
// cout<<d[i];
// cout<<d[i]<<endl;
counO-=d[i];
}
cout<<counO-2*M<<endl;
}
return 0;
}
D – 最小周长
#include<iostream>
#include <string>
#include <string.h>
#include <cstring>
#include <iomanip>
#include <algorithm>
#include <cmath>
using namespace std;
int main(){
int S;
cin>>S;
for(int i=(int)sqrt(S);i>=1;i--){
if(S%i==0) {
cout<<2*(i+S/i)<<endl;
break;
}
}
return 0;
}
E – 迷宫城堡
#include<iostream>
#include <string>
#include <string.h>
#include <cstring>
#include <iomanip>
#include <algorithm>
#include <cmath>
#include <vector>
using namespace std;
const int MAXN=100000;
int vis[MAXN];
int dfn[MAXN];
int low[MAXN];
int c_time;
int flag;
vector<int> mp[MAXN];
void tarjan(int u)//tarjan算法
{
vis[u]=1;
low[u]=dfn[u]=c_time++;
for(int i=0; i<mp[u].size(); i++)
{
int v= mp [u][i];
if(vis[v]==0) tarjan(v); //如何没访问过
if(vis[v]==1) low[u]=min(low[u],low[v]); //如果访问过
}
if(dfn[u]==low[u])
flag++;
}
int main(){
int n,m,x,y;
while(cin>>n>>m){
if(n==0&&m==0) break;
memset(low,0,sizeof(low)); //初始化
memset(vis,0,sizeof(vis));
memset(dfn,0,sizeof(dfn));
for(int i=1; i<=n; i++) mp[i].clear();
for(int i=0; i<m; i++)
{
cin>>x>>y;
mp[x].push_back(y);
}
c_time=1;
flag=0;
for(int i=1; i<=n ; i++)
{
if(vis[i] == 0)
{
tarjan(i);
}
}
if(flag==1)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
return 0;
}
在补了在补了(
挺好玩的小游戏记录一下
https://unityroom.com/games/nanamehacha_hachedout
音乐很好听,画面很好看,谢谢橋野みずは大佬,鼠标操作,找规律高级版,鼠标上滑判断正确与否
https://ghelper.me/clash/b6346fc3b294680f0fe9923ee553e059


