目录
L1-1 人与神
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int N = 5e2 + 24 , M = 1e9 + 24 ;
int main()
{
cout << "To iterate is human, to recurse divine." << endl ;
return 0 ;
}
L1-2 两小时学完C语言
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int N = 5e2 + 24 , M = 1e9 + 24 ;
int main()
{
// cout << "To iterate is human, to recurse divine." << endl ;
int n , k , m ;
cin >> n >> k >> m ;
cout << n-k*m ;
return 0 ;
}
L1-3 强迫症
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int N = 5e2 + 24 , M = 1e9 + 24 ;
int main()
{
int n , year , month ;
cin >> n ;
month = n % 100 ;
year = n / 100 ;
if(year < 22) year += 2000 ;
else if(year < 100) year += 1900 ;
printf("%d-%02d" , year , month) ;
return 0 ;
}
L1-4 降价提醒机器人
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int N = 5e2 + 24 , M = 1e9 + 24 ;
int main()
{
int n ;
double m , p ;
cin >> n >> m ;
while(n --)
{
cin >> p ;
if(p < m) printf("On Sale! %.1f\n" , p) ;
}
return 0 ;
}
L1-5 大笨钟的心情
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int N = 5e2 + 24 , M = 1e9 + 24 ;
int a[36] ;
int main()
{
int i , j , t ;
for(i = 0 ; i < 24 ; i ++) cin >> a[i] ;
while(1)
{
cin >> t ;
if(t <0 || t > 23) break ;
if(a[t] > 50) printf("%d Yes\n" , a[t]) ;
else printf("%d No\n" , a[t]) ;
}
return 0 ;
}
L1-6 吉老师的回归
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int N = 5e2 + 24 , M = 1e9 + 24 ;
int a[36] ;
int main()
{
int n , m , cnt = 0 , i ;
string s ;
bool flag = true ;
cin >> n >> m ;
getchar() ;
for(i = 1 ; i <= n ; i ++)
{
getline(cin , s) ;
if((s.find("qiandao") != -1) || (s.find("easy") != -1)) continue ;
cnt ++ ;
if(cnt == m+1)
{
flag = false ;
cout << s << endl ;
}
}
if(flag) cout << "Wo AK le" ;
return 0 ;
}
L1-7 天梯赛的善良
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int N = 1e6 + 24 , M = 1e9 + 24 ;
int a[N] ;
int main()
{
int n , i , j , t , minn = N , maxx = -1 ;
cin >> n ;
for(i = 1 ; i <= n ; i ++)
{
cin >> t ;
a[t] ++ ;
minn = min(minn , t) ;
maxx = max(maxx , t) ;
}
cout << minn << " " << a[minn] << endl ;
cout << maxx << " " << a[maxx] ;
return 0 ;
}
L1-8 乘法口诀数列
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int N = 1e3 + 24 , M = 1e9 + 24 ;
int a[N] ;
int main()
{
int n , i = 1 , j , cnt = 2 , t ;
cin >> a[1] >> a[2] >> n ;
while(cnt <= n)
{
t = a[i] * a[i+1] ;
if(t > 9) a[++cnt] = t/10 , a[++cnt] = t%10 ;
else a[++cnt] = t ;
i ++ ;
}
for(i = 1 ; i <= n ; i ++)
{
if(i > 1) cout << " " ;
cout << a[i] ;
}
return 0 ;
}
L2-1 包装机
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int N = 1e2 + 24 , M = 1e3 + 24 ;
int a[N] ;
struct point{
char s[M] ;
int t ; // 下一个待处理的位置
point()
{
t = 0 ;
}
}p[N];
vector<char> v ; // 从筐里抓出物品的存放处
stack<char> s ; // 框
int main()
{
int n , m , smax , i , j , id ;
char c ;
cin >> n >> m >> smax ;
for(i = 1 ; i <= n ; i ++)
{
cin >> p[i].s ;
// p[i].t = 0 ;
}
while(1)
{
cin >> id ;
if(id == -1) break ;
if(id == 0) // 从框里面取东西
{
if(!s.empty()) // 框不为空
{
v.push_back(s.top()) ;
s.pop() ;
}
}
else if(id > 0)
{
if(p[id].t < m) // 轨道id上不为空
{
if(s.size() == smax) //筐已经满了,强制取出来一个
{
v.push_back(s.top()) ;
s.pop() ;
}
c = p[id].s[p[id].t] ;
p[id].t ++ ;
s.push(c) ;
}
}
}
for(i = 0 ; i < v.size() ; i ++)
{
cout << v[i] ;
}
return 0 ;
}
L2-2 病毒溯源
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int N = 1e4 + 24 , M = 1e3 + 24 ;
vector<int> v[N] ;
int vis[N] , s[N] ; //确定第一个
int dfs(int root)
{
int i , j , res = 0 , d ;
s[root] = -1 ;
for(i = 0 ; i < v[root].size() ; i ++)
{
j = v[root][i] ;
d = dfs(j) ;
if(d > res) res = d , s[root] = j ;
else if(d == res) s[root] = min(s[root] , j) ;
}
return res+1 ;
}
int main()
{
int n , i , j , root , kk ;
cin >> n ;
for(i = 0 ; i < n ; i ++)
{
int k ;
cin >> k ;
while(k --)
{
cin >> kk ;
v[i].push_back(kk) ;
vis[kk] = 1 ;
}
}
for(i = 0 ; i < n ; i ++)
{
if(vis[i] == 0)
{
root = i ;
break ;
}
}
// memset(s , -1 , sizeof(s)) ; // 记录下一个
cout << dfs(root) << endl ;
cout << root ;
while(s[root] != -1)
{
cout << " " << s[root] ;
root = s[root] ;
}
return 0 ;
}
L2-3 清点代码库
没怎么看懂题目
L2-4 哲哲打游戏
好好看题目,想复杂了我,害!
#include <bits/stdc++.h>
using namespace std ;
typedef long long ll ;
const int N = 1e5 + 24 , M = 1e3 + 24 ;
vector<int> v[N] ;
int book[N] ; // 用于存档
int main()
{
int n , m , i , j , k , kk ;
cin >> n >> m ;
for(i = 0 ; i <= n ; i ++)
{
v[i].push_back(0) ;
}
for(i = 1 ; i <= n ; i ++)
{
cin >> k ;
while(k --)
{
cin >> kk ;
v[i].push_back(kk) ;
}
}
int p = 1 ; // 剧情
while(m --)
{
cin >> k >> kk ;
if(k == 0)
{
p = v[p][kk] ;
}
else if(k == 1)
{
book[kk] = p ;
cout << p << endl ;
}
else if(k == 2)
{
p = book[kk] ;
}
}
cout << p ;
return 0 ;
}
L3我真的不会,目前不太会,希望未来能补上,加油!!