acwing题1:找规律输出
题述
输入输出
数据范围和样例
代码
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
string a[4]={"I hate that","I love that","I love it","I hate it"};
for(int i=1;i<=n-1;i++){
if(i%2==0)
cout << a[1]<<" ";
else cout << a[0]<<" ";
}
if(n%2==0)
cout << a[2]<<endl;
else cout << a[3]<<endl;
return 0;
}
acwing题2:铁路与公路
题述
输入输出
数据范围
样例
代码
#include <bits/stdc++.h>
using namespace std;
const int N = 410 ,INF = 0x3f3f3f3f;
int n,m;
int f[N][N],g[N][N];
int dist[N];
bool st[N];
int dijkstra(int exd[][N])
{
if(exd[1][n]==1)return 1;
memset(st,false,sizeof st);
memset(dist,0x3f,sizeof dist);
dist[1]=0;
for(int i=0;i<n-1;++i)
{
int t=-1;
for(int j=1;j<=n;++j)
if(!st[j]&&(t==-1||dist[t]>dist[j]))
t=j;
st[t]=true;
for(int j=1;j<=n;++j)
dist[j]=min(dist[j],dist[t]+exd[t][j]);
}
if(dist[n]==0x3f3f3f3f)return -1;
else return dist[n];
}
int main()
{
cin>>n>>m;
memset(f,0x3f,sizeof f);
memset(g,0x3f,sizeof g);
while(m--)
{
int a,b;
cin>>a>>b;
f[a][b]=f[b][a]=1;
}
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
if(i!=j&&f[i][j]!=1)g[i][j]=1;
int a=dijkstra(f),b=dijkstra(g);
if(a==-1||b==-1)cout<<-1;
else cout<<max(a,b);
return 0;
}
leetcode题1:买票需要的时间
题述
输入输出及样例
代码
class Solution {
public:
int timeRequiredToBuy(vector<int>& tickets, int k) {
int ret = 0;
while (1) {
for (int i = 0;i < tickets.size();i++) {
if (tickets[i] > 0) {
ret++;
tickets[i]--;
if (tickets[i] == 0 && i == k) {
return ret;
}
}
}
}
return ret;
}
};