首页 > 其他分享 >CSP 模拟 6

CSP 模拟 6

时间:2024-07-27 17:30:59浏览次数:4  
标签:typedef ch gcd int long CSP 模拟 mod

at场

T1 花间叔祖

原题 [ARC148A] mod M
考虑每个数都写成 \(k\cdot mod+b\) 的形式,然后将找出所有相邻两数差的 \(gcd\),如果 \(gcd\ne 1\) 的话选 \(mod=2\) 这样最优,否则选 \(gcd\) 这样答案为 \(1\)。

点击查看代码
#include<bits/stdc++.h>
#define int long long
typedef long long ll;
typedef unsigned long long ull;
inline int read(){char ch=getchar();int x=0,f=1;for(;ch<'0'||ch>'9';ch=getchar())if(ch=='-')f=-1;for(;ch>='0'&&ch<='9';ch=getchar())x=(x<<3)+(x<<1)+(ch^48);return x*f;}
const int N=2e5+10;
int a[N],n,mod,d[N];
signed main(){
	// freopen("in.in","r",stdin);freopen("out.out","w",stdout);
	std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);
	n=read();
    for(int i=1;i<=n;++i)a[i]=read();
    std::sort(a+1,a+n+1);
    for(int i=2;i<=n;++i)d[i]=a[i]-a[i-1];
    int gcd=d[2];
    for(int i=2;i<=n;++i)gcd=std::__gcd(gcd,d[i]);
    std::cout<<(gcd==1?2:1)<<'\n';
}

T2 合并r

原题 [ARC107D] Number of Multisets
考虑与朴素的背包相比它更多的性质。
我们只考虑 \(1\) 的贡献,发现一个构成 \(k\) 的方案,一定可以构成 \(k/2\),相当于将所有组成除以二,然后就做完了。

\[f_{i,j}=f_{i-1,j-1}+f_{i,2j} \]

这样为什么是对的,因为我们的转移只有两种,增加元素或者将元素变换,前者对应了 \(f_{i-1,j-1}\),后者对应了 \(f_{i-1,2j}\)

点击查看代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int N=1e4+10,mod=998244353;
int n,m,f[N];
signed main(){
	ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    cin>>n>>m;
    f[1]=1;
    for(int i=2;i<=n;++i)for(int j=i;j;--j){
        f[j]=f[j-1]+f[j*1];
        f[j]-=(f[j]>=mod)*mod;
    }    
    cout<<f[m]<<'\n';
}

T3 回收波特

不会

标签:typedef,ch,gcd,int,long,CSP,模拟,mod
From: https://www.cnblogs.com/Ishar-zdl/p/18327230

相关文章

  • 模拟赛构造题一道
    给定\(n,m\)要你求出在\(n*m\)的棋盘上最多能摆多少个象(国际象棋)。输出方案。挺无聊的。但是这是我这一个月以来模拟赛中场切的第一题。先想到一个非常显然的构造:默认\(n\leqm\)。先放\(2n\)个棋子在第一行和第\(m\)行,然后中间填个一线天出来。对了。点击查看代码......
  • 暑假集训csp提高模拟9
    赛时rank15T10,T2100,T30,T40T1,T3都会做,然后都挂了。恼了,挂200,不愧是我,唐T1大众点评「JOISC2014Day1」拉面比较简单的交互。考虑选择相邻的两组,小的单独存一个,大的单独存一个,是比较200次再将大的互相比较,小的互相比较,各200次点此查看代码#include<bits/stdc++.......
  • 暑假集训CSP提高模拟9
    暑假集训CSP提高模拟9组题人:@Delov\(T1\)P161.大众点评\(0pts\)原题:JOISC2014Day1ラーメンの食べ比べ。思路来自1037-CSP2021提高级第一轮第5题。\(2n\)次比较是好做的。不难发现在这些比较是有多余的,考虑减少多余比较。将\(n\)座拉面馆两两......
  • 『模拟赛』暑假集训CSP提高模拟9
    .保龄,不放出来丢人了。A.大众点评原[AT_joisc2014_d]ラーメンの食べ比べ手贱-100pts。看到交互被吓了一跳,看完题面还是很懵,直到看了附件里给的样例代码。相当于只写一部分代码,有些函数给你封好了能直接用。思路还是很容易的,用两个随便什么容器存一下可能的最大值和最......
  • Profinet远程IO模块:模拟量模块_安装与接线说明
    XD系列插片式远程IO模块是兴达易控技术研发的分布式扩展模块。XD系列成套系统主要由耦合器、各种功能IO模块、电源辅助模块以及终端模块组成。有多种通讯协议总线的耦合器,例如PROFINET、Ether0AT、EthernetIP、00linkIE以及modbusT0P等。IO模块可分为多通道数字量输入模块、数......
  • 暑假集训CSP提高模拟8
    一看见题目列表就吓晕了,还好我是体育生,后面忘了唉这场比赛没啥好写的,要不就是太难要不就是太简单要不就是拉出去写在专题里了A.基础的生成函数练习题考虑到只有奇偶性相同才能尝试加二,因此先用加一调平奇偶性,再直接加而就行了.#include<bits/stdc++.h>usingnamespacestd;......
  • [赛记] 暑假集训CSP提高模拟7, 8
    学长出题规律:T1签到题,T2套路题(但没见过),T3神奇题(赛时想的做法几乎都是错的),T4peppapig题学长:今天T3防AKpeppapig:今天比赛防爆零A.Permutations&Primes20pts签到题,可惜没有签到;显然,我们要让经过1的区间最多,所以将1放在序列中间;除了1,就是2和3,所以我们把2和3放在两边,这......
  • 暑假集训CSP提高模拟8
    T1点击查看代码#include<bits/stdc++.h>#definelllonglongusingnamespacestd;lla[5];intmain(){ cin>>a[1]>>a[2]>>a[3]; sort(a+1,a+3+1); llans=(a[3]-a[1])/2+(a[3]-a[2])/2; a[1]+=(a[3]-a[1])/2*2;a[2]+=(a[3]-a[2])/2*2; if(a......
  • 『模拟赛』暑假集训CSP提高模拟8
    Rank诶好像把7咕了,那就咕吧。膜拜博弈论带我上Rank1。A.基础的生成函数练习题(gf)原[ABC093C]SameIntegers先给\(a\),\(b\),\(c\)按升序排个序,求出相邻两数之差。若较小的两数之差(\(a\)和\(b\))为奇数,先操作\(\lfloor{\frac{b-a}{2}}\rfloor\)次使\(a=b-1\),再操......
  • 20240726【省选】模拟
    破防了,什么SCOI2024Day1翻版,一道题可能拿100pts,一道题大多数人拿10pts,还有一道不可做,队线110/lhT1去他妈的煞笔构史题解,说了跟说了一样。这个是真的不会。容易想到对二进制每一位开一颗权值线段树或者别的啥维护,然后我就不会了……考虑将每颗权值线段树对应处理的区间......