首页 > 其他分享 >9.27 每日三题

9.27 每日三题

时间:2023-09-27 20:23:21浏览次数:43  
标签:三题 typedef 9.27 ve int double 每日 long sum

A - Moore's Law

思路:快速幂

#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=1e3+5,INF=0x3f3f3f3f,Mod=1e9+7,mod=998244353;
const double eps=1e-6;

double qsm(double a,int b){
    double res=(double)1;
    while(b){
        if(b&1)res*=a;
        b>>=1;
        a*=a;
    }
    return res;
}
void solve(){
    int n,t;cin>>n>>t;
    double ans,p=1.000000011;
    ans=(double)n*qsm(p,t);
    cout<<fixed<<setprecision(20)<<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

 

B - Load Balancing

思路:若sum能整除n,那么把所有数变为sum/n;否则,有sum%n个数变为sum/n+1,那么将大于sum/n+1的数变为sum/n+1即可

#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=1e3+5,INF=0x3f3f3f3f,Mod=1e9+7,mod=998244353;
const double eps=1e-6;


void solve(){
    int s=0,n;cin>>n;
    vector<int>ve(n);
    for(int i=0;i<n;++i){
        cin>>ve[i];s+=ve[i];
    }
    int ans=0,b=0,a=s/n;
    if(s%n){
        b=s%n;
        sort(ve.begin(),ve.end());
        for(int i=n-1;i>=0;--i){
            if(b){
                ans+=abs(ve[i]-a-1);b--;
            }else ans+=abs(ve[i]-a);
        }
    }
    else{
        for(int i=0;i<n;++i){
            ans+=abs(ve[i]-a);
        }
    }
    cout<<ans/2;
}
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

 

C - The Union of k-Segments

思路:可以把每个区间的端点的位置以及是左/右端点 统计起来,按位置前、左端点在前排序;sum统计经过的端点数,经过左端点sum++,右端点sum--,当sum=k时,无论是经过左还是右端点,都是一段有效区间答案的端点,都统计到答案里

#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=1e3+5,INF=0x3f3f3f3f,Mod=1e9+7,mod=998244353;
const double eps=1e-6;

struct E{
    int st,op;//10
    bool operator<(const E&e)const{
        if(st==e.st)return op>e.op;
        return st<e.st;
    }
};
void solve(){
    int k,n;cin>>n>>k;
    vector<E>ve(2*n);
    for(int i=0,p=0;i<n;++i){
        cin>>ve[p].st>>ve[p+1].st;
        ve[p++].op=1,ve[p++].op=0;
    }
    sort(ve.begin(),ve.end());
    vector<int>ans;
    for(int i=0,s=0;i<2*n;++i){
        if(ve[i].op){
            s++;
            if(s==k)ans.push_back(ve[i].st);
        }else{
            if(s==k)ans.push_back(ve[i].st);
            s--;
        }
    }
    cout<<ans.size()/2<<'\n';
    for(int i=0;i<ans.size();i+=2){
        cout<<ans[i]<<' '<<ans[i+1]<<'\n';
    }
}
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,9.27,ve,int,double,每日,long,sum
From: https://www.cnblogs.com/bible-/p/17734216.html

相关文章

  • 9.27每日总结
    今日学习时间两小时,完成了springboot+vue前后端分离的编程方式,同时第一次咋hi馆的了解到了为什么是前后端分离的项目,前端使用8080端口,后端使用8081端口,通过axios进行连接,今日能够将数据库的内容显示到vue界面中,但是vue的使用还停留在一个交给浅薄的地步,希望之后继续进行学习......
  • 2023.9.27 LGJ Round
    A已知一个字符串\(n\le1e3\)中的若干信息,:\((x,y,z)\)表示\(x\)后缀和\(y\)后缀的\(\text{LCP}=z\).求满足条件的字典序最小的字符串。已知\(a_{x+i}=a_{y+i}(i<z)\),考虑维护并查集,一定相同的在一个集合。然后要处理的是\(a_{x+z}\neqa_{y+z}\)。从前往后填即可。......
  • 9.27(读后感2)
    今天上午去上了英语提升课下午再宿舍看了程序员修炼之道的第三章还补全了一部分出题系统的代码,再b站上看了如何用Java实现文件的存入与导出。读后感:在阅读完第三章之后,我深深地感受到了编程不仅仅是一种技术,更是一种艺术,一种哲学。这一章主要阐述了软件工艺的重要性,其中......
  • Go每日一库之26:jj
    简介在前面两篇文章中,我们分别介绍了快速读取JSON值的库gjson和快速设置JSON值的库sjson。今天我们介绍它们的作者tidwall的一个基于gjson和sjson的非常实用的命令行工具jj。它是使用Go编写的快速读取和设置JSON值的命令行程序。快速使用Mac上可以直接使用brewinstal......
  • 9.27
    packagecom;importjava.util.Random;publicclasstest{publicstaticvoidmain(String[]args){shortm=0,n=0,ov=0;charo='+';Randomrandom=newRandom();for(inti=0;i<50;i++){ov=(short)random.......
  • 9.27算法
    环形链表给你一个链表的头节点head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。注意:pos不作为参数进行传递 。仅仅是为了......
  • 每日总结20230926
    代码时间(包括上课)5h代码量(行):100行博客数量(篇):1篇相关事项:1、今天上午上的是软件设计模式和人机交互技术,全部都是新课。2、今天软件设计模式讲的是外观模式和装饰模式,装饰模式不满足开闭原则,外观模式相对简单。3、人机交互技术讲的是代码块应该比较灵活、与用户进行有效的沟通......
  • 2023年9月26日每日随笔
    今天,学习了一个新的数据库,mongoDB,并在其shell界面进行增删改查,学习了c#的一些语法,也出现了一些的问题,同时,对于设计模式也没有落下,学习了外观模式:外观模式有两种角色:外观类和子类,外观类:定义子类对象,集成处理子类方法以实现一系列操作子类:每一个具体的类主要就是简化操......
  • 每日总结9.26
    今天上午我先上了一节算法与数据结构的课程。这门课程主要讲解了各种算法和数据结构的基本原理和应用。我们学习了不同的排序算法,如冒泡排序、插入排序和快速排序等,以及栈、队列和链表等数据结构。老师通过生动的例子和实际的应用场景,让我们更好地理解和掌握这些概念。这门课程对......
  • 9.26每日总结
    今天学习了mongodb数据库的使用,并且学会了对其进行简单的创建数据库以及创建数据表的操作,然后学会了简单的增删改查,并且用编程软件进行连接。同时进一步了解了企业erp,并找了相关的代码进测试学习。......