2020hdu多校8
hdu6857
題目
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
void init()
{
}
void solve()
{
ll a,b,c,d,e,f;
cin>>a>>b>>c>>d>>e>>f;
if((c-a)*(f-b)-(d-b)*(e-a)>0)
{
cout<<"Counterclockwise"<<endl;
}
else
{
cout<<"Clockwise"<<endl;
}
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int _=1;
cin>>_;
while(_--)
{
init();
solve();
}
return 0;
}
hdu6860
題目要
要求一個可能的情況滿足每一個差值不超過k且在預估內
那麼先往上找,找完之後,如果說你列印隨便的一個,發現最後的的範圍是大了,於是只能往回找一次縮小範圍,最後隨便列印。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector <pair<ll,ll> >vv;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
int T;
cin>>T;
while(T--)
{
int flag=0;
vv.clear();
ll n,k;
cin>>n>>k;
for(int i=1;i<=n;i++)
{
if(i==1)
{
int x,y;
cin>>x>>y;
vv.push_back({x,y});
continue;
}
ll x,y;
cin>>x>>y;
ll l=vv[vv.size()-1].first;
ll r=vv[vv.size()-1].second;
l=max(l-k,x);
r=min(r+k,y);
if(l>r)
{
flag=1;
}
vv.push_back({l,r});
}
for(int i=vv.size()-2;i>=0;i--)
{
ll l=vv[i+1].first;
ll r=vv[i+1].second;
ll L=vv[i].first;
ll R=vv[i].second;
L=max(l-k,L);
R=min(R,r+k);
vv[i].first=L;
vv[i].second=R;
}
if(flag)
{
cout<<"NO"<<"\n";
continue;
}
cout<<"YES"<<"\n";
for(int i=0;i<vv.size();i++)
{
cout<<vv[i].first<<" ";
}
cout<<"\n";
}
return 0;
}
hdu6862
題目
構造題
#include <iostream>
using namespace std;
string dp[505];
void init()
{
dp[1]="";
dp[2]="321653";
for(int i=3;i<505;i++)
{
dp[i]="1";
for(int j=1;j<=i-2;j++)
{
dp[i]+="26";
}
dp[i]+="2";
for(int j=1;j<=i-2;j++)
{
dp[i]+="31";
}
dp[i]+="3";
for(int j=1;j<=i-2;j++)
{
dp[i]+="42";
}
dp[i]+="4";
for(int j=1;j<=i-2;j++)
{
dp[i]+="53";
}
dp[i]+="5";
for(int j=1;j<=i-2;j++)
{
dp[i]+="64";
}
dp[i]+="6";
for(int j=1;j<=i-3;j++)
{
dp[i]+="15";
}
dp[i]+="12";
dp[i]+=dp[i-2];
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
init();
int T;
cin>>T;
while(T--)
{
int n;
cin>>n;
cout<<dp[n]<<"\n";
}
return 0;
}
hdu6863
題目
一個 雜湊+優化 題
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF=1e9+5;
const int maxn=5e6+5;
const int mod=7000061;
const int base=131;
ll B[maxn];
int aa[26];
string s;
int n;
int cnt[mod+5];
int index=0;
bool init(int len)
{
index++;
ll p=0;
for(int i=0;i<len;i++)
{
p=(p*base%mod+(s[i]-'a'+1))%mod;
}
cnt[p]=index;
for(int i=1;i<len;i++)
{
ll q=(p+mod-1ll*(s[i-1]-'a'+1)*B[len-1]%mod)%mod;
q=(q*base%mod+(s[i-1]-'a'+1))%mod;
p=q;
cnt[p]=index;
}
for(int i=1;i<n/len;i++)
{
ll q=0;
for(int j=i*len;j<(i+1)*len;j++)
{
q=(q*base%mod+(s[j]-'a'+1))%mod;
}
if(cnt[q]!=index)
return false;
}
return true;
}
void solve()
{
int flag=0;
cin>>n>>s;
int min_=INF;
for(int i=0;i<n;i++)
{
aa[s[i]-97]++;
}
for(int i=0;i<26;i++)
{
if(aa[i]!=0)
if(aa[i]<min_)
min_=aa[i];
}
for(int i=1;i<=min(min_,(int)sqrt(n));i++)
{
if(n%i!=0)
continue;
if(i==n)
continue;
if(init(i))
{
flag=1;
break;
}
int f=n/i;
if(f==n)
continue;
if(n%f!=0)
continue;
if(init(f))
{
flag=1;
break;
}
}
if(flag)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0),cout.tie(0);
B[0]=1;
for(int i=1;i<maxn;i++)
{
B[i]=B[i-1]*base%mod;
}
int _=1;
cin>>_;
while(_--)
{
memset(aa,0,sizeof(aa));
solve();
}
return 0;
}
相關文章
- 2020HDU多校第三場 1005 Little W and Contest
- 2024 牛客多校 8
- 2024牛客多校7&8
- 2024杭電多校第8場
- 2024牛客暑期多校訓練營8
- 2024 牛客多校 6
- 2024 牛客多校 7
- 2024 牛客多校 2
- 2024 牛客多校 1
- 2023 牛客多校 5
- 2024牛客多校6
- 杭電多校補題
- 2024牛客多校1
- springMVC:校驗框架:多規則校驗,巢狀校驗,分組校驗;ssm整合技術SpringMVC框架巢狀SSM
- noip多校聯考總結
- NOIP模擬92(多校25)
- NOIP模擬86(多校19)
- NOIP模擬88(多校21)
- NOIP模擬96(多校29)
- NOIP模擬83(多校16)
- 2024牛客多校第七場
- 2024杭電多校第9場
- 2024牛客多校第10場
- 2024杭電多校第九場
- 2024牛客多校第四場
- 2024牛客多校第三場
- 牛客多校H題題解
- 24牛客多校第一場
- 「模擬賽」多校 A 層聯訓 16
- 10.11日noip多校聯考總結
- 10.10日noip多校聯考總結
- 2024杭電多校覆盤 (1~5)
- NET Core 多身份校驗與策略模式模式
- hdu6052 To my boyfriend 2017多校2
- HDU多校第九次 6415 (dp
- 多執行緒8執行緒
- 「模擬賽」多校 A 層衝刺 NOIP 24
- 2024牛客多校第一場 - Mirror Maze