A题:DFS搜索
题目网址:https://ac.nowcoder.com/acm/contest/67741/A
这里用了笨方法:要找dfs和DFS,我们设4个未知数,分别对应d,f,D,F,找到一个就将它赋值即可。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t,n,key1,key2,key3,key4,ans1,ans2;
char s[50];
cin>>t;
while(t--)
{
cin>>n;
key1=0;key2=0;key3=0;key4=0;ans1=0;ans2=0;
for(int j=0;j<n;j++){
cin>>s[j];
}
for(int j=0;j<n;j++)
{
if(s[j]=='d')
{
key1=1;
}
if(key1==1&&s[j]=='f')
{
key2=1;
}
if(key2==1&&s[j]=='s')
{
ans1=1;
}
}
for(int k=0;k<n;k++)
{
if(s[k]=='D')
{
key3=1;
}
if (key3==1&&s[k]=='F')
{
key4=1;
}
if (key4==1&&s[k]=='S')
{
ans2=1;
}
}
cout<<ans2<<" "<<ans1<<endl;
}
return 0;
}
M题:牛客老粉才知道的秘密
题目网址:https://ac.nowcoder.com/acm/contest/67741/M
需要考虑到2种情况:当题数为至多同时只显示的题数(也就是6)的倍数时,每一次向左时的最左边一题一定与之前向右时是一样的;当不是6的倍数时,找规律可知为第一种情况的2倍就行。
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--){
long n;
cin>>n;
long p1,p2;
if(n%6==0){
cout<<n/6<<endl;
}
else{
cout<<n/6*2<<endl;
}
}
return 0;
}