FYN OI奋斗之路5~

XJOI奋斗群群赛7解题报告+本周总结

原题

https://cn.vjudge.net/contest/184260

A - Bachgold Problem

题意

输入一个数n,求出最多能将其分解为多少质数和,并输出这些质数。

题解

水题,偶数分解为n/2个2,奇数分解为3和(n-3)/2个2即可。

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,count=0;
    cin>>n;
    if(n%2==0){
        cout<<n/2<<endl;
        for(int i=1;i<=n/2;i++){
            cout<<2<<" ";
        }
    }
    else{
        cout<<n/2<<endl;
        for(int i=1;i<n/2;i++){
            cout<<2<<" ";
        }
        cout<<3;
    }
}

B - Parallelogram is Back

题意

输入平行四边形的3个点,输出第四个点可能的位置。

题解

水题,第四个点显然有三个位置,注意除2时用double即可。

#include<bits/stdc++.h>
using namespace std;
int main(){
    double x[100],y[100],c[100],d[100];
    for(int i=1;i<=3;i++){
        cin>>x[i]>>y[i];
    }
    c[1]=(x[1]+x[2])/2.0;
    c[2]=(x[1]+x[3])/2.0;
    c[3]=(x[2]+x[3])/2.0;
    d[1]=(y[1]+y[2])/2.0;
    d[2]=(y[1]+y[3])/2.0;
    d[3]=(y[2]+y[3])/2.0;
    cout<<3<<endl;
    cout<<c[1]-(x[3]-c[1])<<" "<<d[1]-(y[3]-d[1])<<endl;
    cout<<c[2]-(x[2]-c[2])<<" "<<d[2]-(y[2]-d[2])<<endl;
    cout<<c[3]-(x[1]-c[3])<<" "<<d[3]-(y[1]-d[3])<<endl;
}

C - Voting

题意

n个人进行投票,分为两个党派,轮到某个有投票权人时,他可以否决另一个党派的人的投票权,按此循环直至剩下最后一个人,他的党派即胜利的党派。

题解

建两个队列,分别存储党派为D,R的人的编号,之后模拟否决的操作即可。

#include<bits/stdc++.h>
using namespace std;
char c[200010];
int num[200010];
int main() {
    int n;
    cin>>n;
    memset(num,0,sizeof(num));
    queue <int> d;
    queue <int> r;
    cin>>c;
    for(int i=0; i<n; i++) {
        if(c[i]=='D') d.push(i);
        else r.push(i);
    }
    while(!d.empty()&&!r.empty()) {
        for(int i=0; i<n; i++) {
            if(num[i]) {
                continue;
            }
            if(c[i]=='D') {
                int temp1;
                temp1=d.front();
                d.pop();
                int temp2;
                temp2=r.front();
                r.pop();
                num[temp2]=1;
                d.push(temp1);
            } else {
                int temp1;
                temp1=r.front();
                r.pop();
                int temp2;
                temp2=d.front();
                d.pop();
                num[temp2]=1;
                r.push(temp1);
            }
            if(d.empty()||r.empty()) {
                break;
            }
        }

    }
    if(!d.empty()) {
        cout<<"D";
        return 0;
    } else {
        cout<<"R";
        return 0;
    }

}

D - Secrets

题意

大意是一个国家,它的货币面值只有3的幂,给出一个n值,假设n无法由目前所有的硬币组合成,那么求在多花最少钱的情况下最多用多少枚硬币。

题解

n不断除3,若无法整除3,则等于n/3+1。

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long int n,t,ans;
    cin>>n;
    if(n%3!=0){
        ans=n/3+1;
    }
    else if(n%3==0){
        t=3*3;
        while(t){
            if(t==n){
                ans=1;
                break;
            }
            if(n%t!=0){
                ans=n/t+1;
                break;
            }
            else{
                t=t*3;
            }
        }
    }
    cout<<ans;
    return 0;
}

E - Chips

题意

一个n*n的矩阵的边框上(不包括四个角落)放棋子,有m个不能过的点,要求每个棋子走到对面,棋子不能相撞,求最多棋子数。

题解

一个不能过的点可以废掉它所在一行和一列,其他行列不会影响。

#include<bits/stdc++.h>
using namespace std;
const int MAXN=10000;
int a[MAXN]={0},b[MAXN]={0};
int main(){
    int n,m;
    cin>>n>>m;
    int ans1=n-2,ans2=n-2;
    int x,y;
    for(int i=1;i<=m;i++){
        cin>>x>>y;
        a[x]=1;
        b[y]=1;
    }
    for(int i=2;i<=n-1;i++){
        if(a[i]==1) ans1--;
        if(b[i]==1) ans2--;
    }
    int ans=ans1+ans2;
    if(n%2==1&&a[(n+1)/2]==0&&b[(n+1)/2]==0) {
        ans--;
    }
    cout<<ans;
}

本周总结

这周比赛的题目基本上AB是水题,后面的题目就比较难了,有比较多是要用到数据结构的,然而这块掌握的并不是特别好,其他的不足点还是有些粗心吧,包括数据范围和输出内容上还是时有错误,另外有些分类讨论的思维题也会考虑不全。还有就是心态问题,一题做不出来比较容易被卡住。下周,划水的AB题就要离我们而去了2333。
最后贴出czl和吴老师常说的话:学信息的人永不服输!

2017年9月10日

内容概要:本文档详细介绍了Analog Devices公司生产的AD8436真均方根-直流(RMS-to-DC)转换器的技术细节及其应用场景。AD8436由三个独立模块构成:轨到轨FET输入放大器、高动态范围均方根计算内核和精密轨到轨输出放大器。该器件不仅体积小巧、功耗低,而且具有广泛的输入电压范围和快速响应特性。文档涵盖了AD8436的工作原理、配置选项、外部组件选择(如电容)、增益调节、单电源供电、电流互感器配置、接地故障检测、三相电源监测等方面的内容。此外,还特别强调了PCB设计注意事项和误差源分析,旨在帮助工程师更好地理解和应用这款高性能的RMS-DC转换器。 适合人群:从事模拟电路设计的专业工程师和技术人员,尤其是那些需要精确测量交流电信号均方根值的应用开发者。 使用场景及目标:①用于工业自动化、医疗设备、电力监控等领域,实现对交流电压或电流的精准测量;②适用于手持式数字万用表及其他便携式仪器仪表,提供高效的单电源解决方案;③在电流互感器配置中,用于检测微小的电流变化,保障电气安全;④应用于三相电力系统监控,优化建立时间和转换精度。 其他说明:为了确保最佳性能,文档推荐使用高质量的电容器件,并给出了详细的PCB布局指导。同时提醒用户关注电介质吸收和泄漏电流等因素对测量准确性的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值