A.Sheep and Wolves
题意:
题解:
AC代码
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define endl '\n'
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int mod=1e9+7;
//const int mod=998244353;
const double eps = 1e-10;
const double pi=acos(-1.0);
const int maxn=1e6+10;
const ll inf=0x3f3f3f3f;
const int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int s,w;
cin>>s>>w;
if(w>=s)cout<<"unsafe";
else cout<<"safe";
return 0;
}
B. Battle
题意:
题解:
AC代码
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define endl '\n'
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int mod=1e9+7;
//const int mod=998244353;
const double eps = 1e-10;
const double pi=acos(-1.0);
const int maxn=1e6+10;
const ll inf=0x3f3f3f3f;
const int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int a,b,c,d;
cin>>a>>b>>c>>d;
int cnt=1;
while(a>0&&c>0){
if(cnt&1)c-=b;
else a-=d;
cnt^=1;
}
if(a<=0)cout<<"No";
else cout<<"Yes";
return 0;
}
C.gacha
题意:
题解:
AC代码
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define endl '\n'
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int mod=1e9+7;
//const int mod=998244353;
const double eps = 1e-10;
const double pi=acos(-1.0);
const int maxn=1e6+10;
const ll inf=0x3f3f3f3f;
const int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
set<string> s;
int n;
cin>>n;
for(int i=1;i<=n;i++){
string x;
cin>>x;
s.insert(x);
}
cout<<s.size();
return 0;
}
D. Multiple of 2019
题意:
题解:
AC代码
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define endl '\n'
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int mod=1e9+7;
//const int mod=998244353;
const double eps = 1e-10;
const double pi=acos(-1.0);
const int maxn=1e6+10;
const ll inf=0x3f3f3f3f;
const int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
string s;
cin>>s;
int p=2019;
map<int,ll> m;
m[0]++;
ll ans=0,sum=0,d=1;
for(int i=s.length()-1;i>=0;i--){
sum=(sum+d*(s[i]-'0')%p)%p;
ans+=m[sum];
m[sum]++;
d=(d*10)%p;
}
cout<<ans;
return 0;
}
E.Two Currencies
题意:
题解:
AC代码
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
#define pb push_back
#define mp make_pair
#define all(x) (x).begin(),(x).end()
#define endl '\n'
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int mod=1e9+7;
//const int mod=998244353;
const double eps = 1e-10;
const double pi=acos(-1.0);
const int maxn=1e6+10;
const ll inf=0x3f3f3f3f;
const int dir[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
struct edge{
int v,nx;
ll a,b;
}e[210];
int head[60],cnt;
ll c[60],d[60];
ll dis[60][3000];
void add(int u,int v,ll a,ll b){
e[++cnt].v=v;
e[cnt].a=a;
e[cnt].b=b;
e[cnt].nx=head[u];
head[u]=cnt;
}
struct node{
int u;
ll s,t;
bool operator <(const node &x)const{
return t>x.t;
}
};
ll dis1[100];
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int n,m;
ll s;
cin>>n>>m>>s;
for(int i=1;i<=m;i++){
int u,v;
ll a,b;
cin>>u>>v>>a>>b;
add(u,v,a,b);
add(v,u,a,b);
}
for(int i=1;i<=n;i++)cin>>c[i]>>d[i];
if(s>2500){
for(int i=1;i<=n;i++)dis1[i]=inf*inf;
dis1[1]=0;
priority_queue<pii,vector<pii>,greater<pii> > q;
q.push(mp(0,1));
while(!q.empty()){
pii p=q.top();
q.pop();
int u=p.se;
if(dis1[u]<p.fi)continue;
for(int i=head[u];i;i=e[i].nx){
int v=e[i].v;
if(dis1[v]>dis1[u]+e[i].b){
dis1[v]=dis1[u]+e[i].b;
q.push(mp(dis1[v],v));
}
}
}
for(int i=2;i<=n;i++)
cout<<dis1[i]<<endl;
return 0;
}
priority_queue<node> q;
for(int i=1;i<=n;i++)
for(int j=0;j<=50*n;j++)
dis[i][j]=1e18;
dis[1][s]=0;
q.push((node){1,s,0});
while(!q.empty()){
node p=q.top();
q.pop();
int u=p.u;
if(p.t>dis[u][p.s])continue;
for(int i=head[u];i;i=e[i].nx){
int v=e[i].v;
if(p.s>=e[i].a&&dis[v][p.s-e[i].a]>dis[u][p.s]+e[i].b){
dis[v][p.s-e[i].a]=dis[u][p.s]+e[i].b;
q.push((node){v,p.s-e[i].a,dis[u][p.s]+e[i].b});
}
}
ll ts=min(p.s+c[u],50ll*n);
if(dis[u][ts]>dis[u][p.s]+d[u]){
dis[u][ts]=dis[u][p.s]+d[u];
q.push((node){u,ts,dis[u][p.s]+d[u]});
}
}
for(int i=2;i<=n;i++){
ll ans=1e18;
for(int j=0;j<=50*n;j++)
ans=min(ans,dis[i][j]);
cout<<ans<<endl;
}
return 0;
}

京公网安备 11010502036488号