首页 > 其他分享 >10.6 2023湖南省赛

10.6 2023湖南省赛

时间:2023-10-07 22:02:31浏览次数:38  
标签:typedef 10.6 int double long 2023 sg 湖南省 define

2023湖南省赛

 A - 开开心心233

思路:点歌增加的歌曲数量可用等差求和公式求出,并且剩余的歌曲数量是单调的,可以二分求

#include<bits/stdc++.h>
using namespace std;
#define int long long
//#define int __int128
#define double long double
typedef pair<int,int>PII;
typedef pair<string,int>PSI;
typedef pair<string,string>PSS;
const int N=1e6+5,INF=0x3f3f3f3f,Mod=1e9+7,mod=998244353;
const double eps=1e-6;

void solve(){
    int n,m;cin>>n>>m;
    int l=0,r=n,ans;
    auto check=[n,m](int x){
        int c=n-x;
        int sum=c*(c+1)/2-x;
        return sum<=m;
    };
    while(l<=r){
        int mid=l+r>>1;
        if(check(mid))r=mid-1,ans=mid;
        else l=mid+1;
    }
    cout<<ans;
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int T=1;
    //cin>>T;
    while(T--){
        solve();
    }
    return 0;
}
View Code

 

F - 宝石交易

思路:可以有多种替换,那么对所有替换用图存后求Floyd;暴力遍历每个起点,求从该起点开始的最小花费

#include<bits/stdc++.h>
using namespace std;
int s[10010],t[10010];
int c[410][410];
#define INF 0x3f3f3f3f
int32_t main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        cin>>s[i];
    }
    for(int i=1;i<=n;i++){
        cin>>t[i];
    }
    for(int i=1;i<=400;++i)
        for(int j=1;j<=400;++j)
            c[i][j]=INF;
    for(int i=1;i<=m;i++){
        int a,b,r;
        cin>>a>>b>>r;
        //c[a][b]=r;
        c[a][b]=min(c[a][b],r);
    }
    for(int k=1;k<=400;++k)
        for(int i=1;i<=400;++i)
            for(int j=1;j<=400;++j)
                c[i][j]=min(c[i][k]+c[k][j],c[i][j]);
    int min1=INT32_MAX;
    for(int i=1;i<=n;i++){
        int f=0;
        int sum=0;
        for(int j=1;j<=n;j++){
            int d=t[(i+j-2)%n+1];//2
            int e=s[1+j-1];//1
            //cout<<d<<" "<<e<<endl;
            if(d==e)
                continue;
            if(c[d][e]==INF&&c[e][d]==INF){
                f=1;
                break;
            }
            else{
                sum+=min(c[d][e],c[e][d]);
            }
        }
        if(f==0){
            min1=min(min1,sum);
        }
    }
    if(min1!=INT32_MAX)
        cout<<min1<<endl;
    else
        cout<<-1<<"\n";
    return 0;
}
View Code

 

B - square game

思路:可以发现非平方数的sg,都等于距离最近的上一个平方数,那么所有数可以分成两种:n2,n2+1。用记忆化搜索求所有数的sg函数,异或和为非0则先手胜

#include<bits/stdc++.h>
using namespace std;
#define int long long
//#define int __int128
#define double long double
typedef pair<int,int>PII;
typedef pair<string,int>PSI;
typedef pair<string,string>PSS;
const int N=1e6+5,INF=0x3f3f3f3f,Mod=1e9+7,mod=998244353;
const double eps=1e-6;

vector<int>f(N);
int sg(int x){
    int y= ::sqrt(x),ed=y*y-y;
    if(y*y!=x)x=y*y+1,ed=y*y;
    if(f[x]!=-1)return f[x];
    unordered_set<int>se;
    for(int i=ed;i>=0;i-=y){
        se.insert(sg(i));
    }
    for(int i=0;i<N-4;++i){
        if(!se.count(i)){
            return f[x]=i;
        }
    }
}
void solve(){
    for(int i=1;i<N-4;++i)f[i]=-1;
    int n;cin>>n;
    int ans=0;
    for(int i=1,x;i<=n;++i){
        cin>>x;
        ans^=sg(x);
    }
    cout<<(ans?"First":"Second");
}
signed main(){
    ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
    int T=1;
    //cin>>T;
    while(T--){
        solve();
    }
    return 0;
}
View Code

 

标签:typedef,10.6,int,double,long,2023,sg,湖南省,define
From: https://www.cnblogs.com/bible-/p/17747523.html

相关文章

  • 2023-2024-1 20231411 《计算机基础与程序设计》第二周学习总结
    作业信息这个作业属于哪个课程2022-2023-1-计算机基础与程序设计这个作业要求在哪里2022-2023-1计算机基础与程序设计第一周作业这个作业的目标初步熟悉课本以及对所学内容有所思考作业正文https://www.cnblogs.com/123lyx/p/17747569.html教材学习内容总......
  • 2023-2024-1 20231312 《计算机基础与程序设计》第二周学习总结
    作业信息|这个作业属于哪个课程|<班级的链接>2023-2024-1-计算机基础与程序设计||这个作业要求在哪里|<作业要求链接>2023-2024-1计算机基础与程序设计第二周作业||这个作业的目标|<计算机科学概论第1章并完成云班课测试《C语言程序......
  • 20231306 gcc测试
    通过homebrew安装gcc2.检测gcc安装成功3.创建文件夹“my_program.c"并编写代码4.创建文件“my_program"并用gcc进行预处理......
  • 2023NOIP A层联测5
    A.T1(cook)复合题,考场上只做出来了分块的部分,没有想到那个组合数求和可以用莫队分块部分具体不说了,对散块部分加权时,可以采用归并优化时间复杂度(因为我北卡长哩,卡到了晚饭之后,卡了一下午,好欸!)现在考虑问题\(\sum_{i=0}^{k}\dbinom{x}{i}\)令$(S(n,m)=\sum_{i=0}^{m}C......
  • [20230922]dc命令复杂学习3.txt
    [20230922]dc命令复杂学习3.txt1.问题提出:--//前一段时间简单学习了dc,累加的例子:$cata.txt1111222233334444$cata.txt|dc-f--e"[+z1<r]srz1<rp"11110$dc-fa.txt-e"[+z1<r]srz1<rp"11110--//实际上如果累加数据量很大,这样的执行效率很低的,因为每次都要判断堆......
  • 2023年如何自学编曲?如果迷茫了,就看看这6点建议吧
    好多想学编曲的铁汁们,总觉得学编曲好难啊,要学习的东西太多了,我到底该先学什么?我看到了太多从小白到能靠编曲养活自己的铁汁,大家都有一段在网上盲人摸象的过程,后来逐步建立了自己系统性的认知,逐渐了开启了编曲之旅。所以建立一个系统的认知,有科学的引导尤为重要。所以大家暂时的摸不......
  • 2023NOIP A层联测6
    A.万花筒考虑发现每次相当于把x和x+d连边,不难发现最后一定是一些环证明可以看白简B.冒泡排序趟数期望写一下我曾经比较疑惑的点为什么inv和p一定一一对应,因为我们发现只要给出我们一个inv我们就可以倒推出唯一确定的p,所以它们是一一对应的关系这道......
  • 2023-2024学期 20231424 《计算机基础与程序设计》第2周学习总结
    2023-2024-120231424《计算机基础与程序设计》第2周学习总结作业信息这个作业属于哪个课程(2022-2023-1-计算机基础与程序设计)这个作业要求在哪里(2023-2024-1计算机基础与程序设计第2周作业)这个作业的目标自学《计算机科学概论》《C语言程序设计》第1章并完成云......
  • 2023-2024-1 20231403 《计算机基础与程序设计》 第二周学习总结
    作业信息这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)这个作业要求在哪里2023-2024-1计算机基础与程序设计第二周作业)这个作业的目标学习两本课本的第一章内容作业正文https://www.cnblogs.com/lsrmy/p/17747323.html教材学习内......
  • 【GJOI 2023.10.6 T2】 亿只只因的回家路
    亿只只因的回家路题意:给出一个\(n\)点\(m\)边的无向图,每条边有长度\(v_i\),有\(k\)只小鸡,第\(i\)只小鸡在\(id_i\)号节点,鸡妈妈在\(1\)号点,现鸡妈妈要接所有的小鸡,小鸡与鸡妈妈的速度为\(1\),问最短多久鸡妈妈才能接到所有的小鸡,\(n\le10^5,k\le2\times10^......