题目链接
古堡中的勇者
![这里是引用](https://img-blog.csdnimg.cn/direct/91610a2730ef41399f2663629b18e29f.png)
#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
#define endl '\n'
#define rep(i,a,b) for(int i=(a);i<=b;i++)
#define lep(i,a,b) for(int i=(a);i>=b;i--)
#define mem(a,x) memset(a,x,sizeof a)
#define mep(a,x) memcpy(a,x,sizeof x)
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<int,ll> pil;
typedef pair<ll,int> pli;
const int N=1e6+10;
signed main(){
int a,b,c,n,ans=0;
cin>>a>>b>>c>>n;
for(int i=0;i<n;i++){
int x;cin>>x;
if(x>b&&x<c) ans++;
}
cout<<ans<<endl;
return 0;
}
三星五费
![这里是引用](https://img-blog.csdnimg.cn/direct/1e377c51c86b4ad08b787905d9568fd8.png)
#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
#define endl '\n'
#define rep(i,a,b) for(int i=(a);i<=b;i++)
#define lep(i,a,b) for(int i=(a);i>=b;i--)
#define mem(a,x) memset(a,x,sizeof a)
#define mep(a,x) memcpy(a,x,sizeof x)
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<int,ll> pil;
typedef pair<ll,int> pli;
const int N=1e6+10;
signed main(){
int n;cin>>n;
int t=(n-5)/2;
double ans=1;
if(n<7){
ans=0;
}else{
rep(i,1,t) ans*=0.97;
ans=1-ans;
}
printf("%.3lf\n",ans);
return 0;
}
我就要不协调
![这里是引用](https://img-blog.csdnimg.cn/direct/24ff0587cdbc4be79143740e53279b37.png)
#include<bits/stdc++.h>
using namespace std;
const int N=510;
int main(){
int t,n,x;
cin>>t;
while(t--){
cin>>n;
int mx=0,flag=0,des=1e9;
for(int i=0;i<n;i++){
cin>>x;
if(x<mx){
flag=1;
}
else{
if(i!=0) des=min(des,(x-mx));
mx=max(mx,x);
}
}
if(flag){
cout<<"0"<<endl;
continue;
}
int ans=des/2+1;
cout<<ans<<endl;
}
return 0;
}
字母匹配
![这里是引用](https://img-blog.csdnimg.cn/direct/e59f38ccee4544b3866696f1e13282e2.png)
#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
#define endl '\n'
#define rep(i,a,b) for(int i=(a);i<=b;i++)
#define lep(i,a,b) for(int i=(a);i>=b;i--)
#define mem(a,x) memset(a,x,sizeof a)
#define mep(a,x) memcpy(a,x,sizeof x)
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<int,ll> pil;
typedef pair<ll,int> pli;
const int N=2e5+10,P=131;
int n,m,q,k,ans=0;
map<int,int> mp;
signed main(){
cin>>n>>k;
string s;
cin>>s;
for(int i=0;i<n;i++){
mp[s[i]]++;
}
for(int i=0;i<26;i++){
int cnt1=mp['a'+i],cnt2=mp['A'+i];
if(cnt1>cnt2) swap(cnt1,cnt2);
ans+=cnt1;
if(k){
int add=min(k,(cnt2-cnt1)/2);
ans+=add;
k-=add;
}
}
cout<<ans<<endl;
return 0;
}
数学家的四不要
![这里是引用](https://img-blog.csdnimg.cn/direct/3fafaaceb70d481d9e189faf66cc803e.png)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e8+10;
int prime[N],cnt,sj[N],C[N],c[N];
bool isou(int n){
if(n&1)
return false;
else
return true;
}
bool iszhi(int n){
if(n<2) return false;
for(int i=2;i<=n/i;i++){
if(n%i==0)
return false;
}
return true;
}
void get_san(int n){
ll t=0;
for(int i=1;i<=1200;i++){
t+=i;
sj[t]=1;
}
}
void kate(int n){
c[0]=c[1]=1;
C[1]=1;
for(int i=2;i<=17;i++){
ll ans=1;
for(int j=1,k=2*i;j<=i;j++,k--){
ans*=k;
ans/=j;
}
ans/=(i+1);
C[ans]=1;
}
}
int main(){
int n;
cin>>n;
kate(n);
get_san(n);
int ans=0;
for(int i=1;i<=n;i++){
if(!isou(i)&&!iszhi(i)&&!sj[i]&&!C[i]){
ans++;
}
}
cout<<ans<<endl;
return 0;
}
旗鼓相当的对手
![这里是引用](https://img-blog.csdnimg.cn/direct/378057c53af8467a8fd8939929e9b492.png)
#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
#define endl '\n'
#define rep(i,a,b) for(int i=(a);i<=b;i++)
#define lep(i,a,b) for(int i=(a);i>=b;i--)
#define mem(a,x) memset(a,x,sizeof a)
#define mep(a,x) memcpy(a,x,sizeof x)
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<int,ll> pil;
typedef pair<ll,int> pli;
const int N=2e5+10,P=131;
int n,m,q,k,ans=1e5+10;
int v[N],f[N];
signed main(){
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int n;cin>>n;
f[0]=1;
rep(i,1,n) cin>>v[i],m+=v[i];
rep(i,1,n) for(int j=m;j>=v[i];j--){
f[j]|=f[j-v[i]];
}
for(int i=0;i<m;i++){
if(f[i]) ans=min(ans,abs(m-2*i));
}
cout<<ans<<endl;
return 0;
}
卷王
![这里是引用](https://img-blog.csdnimg.cn/direct/2238616a7fca4c109737fdc06b1ff477.png)
#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
#define endl '\n'
#define rep(i,a,b) for(int i=(a);i<=b;i++)
#define lep(i,a,b) for(int i=(a);i>=b;i--)
#define mem(a,x) memset(a,x,sizeof a)
#define mep(a,x) memcpy(a,x,sizeof x)
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<int,ll> pil;
typedef pair<ll,int> pli;
const int N=2e5+10,P=131;
int n,m,q,k,ans=1;
int a[N],b[N];
signed main(){
ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
int n,d;cin>>n>>d;
rep(i,1,n) cin>>a[i];
rep(i,1,n) cin>>b[i];
int s=a[d]+b[1];
for(int i=1,j=n;i<d;i++){
if(a[i]+b[j]>s) ans++;
else j--;
}
cout<<ans<<endl;
return 0;
}
字符比较
![这里是引用](https://img-blog.csdnimg.cn/direct/1fd6f4c14bce4ce19835fe110eb0155d.png)
#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
#define endl '\n'
#define rep(i,a,b) for(int i=(a);i<=b;i++)
#define lep(i,a,b) for(int i=(a);i>=b;i--)
#define mem(a,x) memset(a,x,sizeof a)
#define mep(a,x) memcpy(a,x,sizeof x)
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
typedef pair<int,ll> pil;
typedef pair<ll,int> pli;
const int N=2e5+10,P=131;
char s1[N],s2[N];
int h1[N],h2[N],p[N];
int n,m,q;
int get(int h[N],int l,int r){
return h[r]-h[l-1]*p[r-l+1];
}
signed main(){
cin>>n>>m>>q>>s1+1>>s2+1;
p[0]=1;
for(int i=1;i<=max(n,m);i++) p[i]=p[i-1]*P;
for(int i=1;i<=n;i++){
h1[i]=h1[i-1]*P+s1[i]-'a';
}
for(int i=1;i<=m;i++){
h2[i]=h2[i-1]*P+s2[i]-'a';
}
while(q--){
int l1,r1,l2,r2;
cin>>l1>>r1>>l2>>r2;
int l=-1,r=r1-l1+2;
while(l+1<r){
int mid=l+r>>1;
if(get(h1,l1,l1+mid-1)==get(h2,l2,l2+mid-1))
l=mid;
else
r=mid;
}
if(l==-1){
if(s1[0]<s2[0]) cout<<"<"<<endl;
else cout<<">"<<endl;
}
else if(l==r1-l1+1) cout<<"="<<endl;
else{
if(s1[l1+l]<s2[l2+l]) cout<<"<"<<endl;
else cout<<">"<<endl;
}
}
return 0;
}
小C的学习计划
![这里是引用](https://img-blog.csdnimg.cn/direct/7f5836944117432bb78591d2669113fb.png)
#include<bits/stdc++.h>
using namespace std;
typedef long double ld;
typedef long long ll;
const int N=20;
ld f[1<<20];
int a[N];
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++) cin>>a[i];
for(int i=(1<<n)-1;~i;i--){
ld s=1;
ll sum=0,cnt=0;
for(int j=0;j<n;j++){
if((i>>j)&1) sum+=a[j],cnt++;
else s+=1.0/n*f[i|1<<j];
}
if(sum>=m) f[i]=0;
else{
f[i]=s/(1-(ld)cnt/n);
}
}
printf("%.6Lf",f[0]);
}
网格谜题
![这里是引用](https://img-blog.csdnimg.cn/direct/71505884eb224b4793ccf11436ef582b.png)
#include<bits/stdc++.h>
using namespace std;
#define itn int
typedef long long ll;
typedef pair<ll, ll> PLL;
#define rep(i,a,b) for(int i=(a);i<=(b);i++)
const int N = 4e6 + 10;
ll n, m, k;
int dx[] = {0, 0, 1, -1}, dy[] = {1, -1, 0, 0};
vector<PLL> e[N];
array<int, 4> bri[N];
ll w[N], st[N], p[N];
int find(int x)
{
return x == p[x] ? x : p[x] = find(p[x]);
}
void solve()
{
cin >> n >> m >> k;
priority_queue<PLL> q;
auto id = [&](ll x, ll y)
{
return m * (x - 1) + y;
};
ll res = 0;
rep(i, 1, n) rep(j, 1, m)
{
cin >> w[id(i, j)]; q.push({w[id(i, j)], id(i, j)});
res += w[id(i, j)];
p[id(i, j)] = id(i, j);
}
if(res < k * (n * m - 1))
{
cout << "NO" << '\n';
return;
}
int cnt = 0;
cout << "YES" << '\n';
rep(x, 1, n) rep(y, 1, m) rep(k, 0, 3)
{
int xx = x + dx[k], yy = y + dy[k];
if(xx < 1 || yy < 1 || xx > n || yy > m) continue;
++cnt;
bri[cnt] = {x, y, xx, yy};
e[id(x, y)].push_back({id(xx, yy), cnt});
}
cout << n * m - 1 << '\n';
while(q.size())
{
auto [wi, pi] = q.top(); q.pop();
pi=find(pi);
if(st[pi]) continue;
while(e[pi].size())
{
auto [to, lt] = e[pi].back();
to = find(to);
if(to == pi)
{
e[pi].pop_back();
continue;
}
p[to] = p[pi];
if(e[to].size() > e[pi].size()) swap(e[to], e[pi]);
for(auto [t1, t2] : e[to])
{
if(find(t1) == pi) continue;
e[pi].push_back({t1, t2});
}
for(auto x : bri[lt]) cout << x << ' '; cout << '\n';
st[to] = 1;
w[pi] = wi + w[to] - k;
q.push({w[pi], pi});
break;
}
}
}
signed main() {
ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int T; T = 1;
while (T--)
{
solve();
}
return 0;
}