Rank
URL划分 - HDU 7451 - Virtual Judge (vjudge.net)
这题唯一要注意的就是后面只输出有等号的部分,然后模拟即可。
#include<bits/stdc++.h>
using ll=long long;
using ull=unsigned long long;
using PII=std::pair<double,double>;
#define fir first
#define sec second
const int N=1068576,P=131;
void solve()
{
std::string s;
std::cin>>s;
std::string a;
int flag=0;
int cnt=0;
for(int i=0;i<s.length();i++)
{
if(s[i]==':'&&flag==0)
{
std::cout<<a<<'\n';
flag=1;
i+=2;
a="";
continue;
}
if(s[i]=='/'){
if(cnt==0||a.find('=')!=std::string::npos) std::cout<<a<<'\n';
cnt++;
a="";
continue;
}
a+=s[i];
}
}
signed main()
{
std::ios::sync_with_stdio(0);
std::cin.tie(0);
int t=1;
std::cin>>t;
while(t--)
{
solve();
}
return 0;
}
女神的睿智 - HDU 7454 - Virtual Judge
仔细读题模拟即可。
#include<bits/stdc++.h>
using ll=long long;
using ull=unsigned long long;
using PII=std::pair<double,double>;
#define fir first
#define sec second
const int N=1068576,P=131;
void solve()
{
std::string s;
std::cin>>s;
std::map<char,int> mp;
for(auto i:s)
{
mp[i]++;
}
if(s[0]==s[4])
{
std::cout<<s[0]<<'\n';
}else{
ll cnt1=0,cnt2=0;
for(auto i:s){
if(i==s[0]) cnt1++;
}
for(auto i:s){
if(i==s[4]) cnt2++;
}
if(cnt1>cnt2) std::cout<<s[0]<<'\n';
else if(cnt1<cnt2) std::cout<<s[4]<<'\n';
else std::cout<<"N\n";
}
}
signed main()
{
std::ios::sync_with_stdio(0);
std::cin.tie(0);
int t=1;
std::cin>>t;
while(t--)
{
solve();
}
return 0;
}
传奇勇士小凯 - HDU 7450 - Virtual Judge (vjudge.net)
关于证明一个概率事件的期望次数 - zjp_shadow - 博客园 (cnblogs.com)好文,拜读!
笔记-数学期望 - oier_hzy - 博客园 (cnblogs.com)
首先要算每个点的期望,可以读读上面文章容易知道期望天数为1/p,这里就是15/pi。
因为分母比较难处理,所以我们先预处理出1乘到15的最小公倍数,360360。然后就是把每个数的分母都变成它,因此dfs的时候我们求分子相加的最大值即可。
#include<bits/stdc++.h>
using ll=long long;
using ull=unsigned long long;
using PII=std::pair<double,double>;
#define fir first
#define sec second
const int N=2e5+10,P=131,mu=360360;
int n;
std::vector<int> g[N];
bool st[N];
ull p[N],fz[N];
ull ans=0;
ull lcm(ull a,ull b)
{
return a*b/std::__gcd(a,b);
}
void dfs(int x,ull sum)
{
ans=std::max(ans,sum);
for(auto &i:g[x])
{
if(st[i]) continue;
st[i]=1;
dfs(i,sum+fz[i]);
st[i]=0;
}
}
void solve()
{
ans=0;
std::cin>>n;
for(int i=1;i<=n;i++)
{
g[i].clear();
p[i]=fz[i]=0;
}
for(int i=1;i<=n-1;i++)
{
int u,v;
std::cin>>u>>v;
g[u].push_back(v);
g[v].push_back(u);
}
for(int i=1;i<=n;i++)
{
std::cin>>p[i];
fz[i]=mu/p[i]*15;
}
st[1]=1;
dfs(1,fz[1]);
ull gcd=std::__gcd(ans,(ull)mu);
std::cout<<ans/gcd<<"/"<<mu/gcd<<'\n';
}
signed main()
{
std::ios::sync_with_stdio(0);
std::cin.tie(0);
// int l=1;
// for(int i=1;i<=15;i++)
// {
// l=lcm(l,i);
// }
// std::cout<<l;
//360360
int t=1;
std::cin>>t;
while(t--)
{
solve();
}
return 0;
}