首页 > 其他分享 >2022icpc网络赛 A题B题

2022icpc网络赛 A题B题

时间:2022-09-26 19:57:55浏览次数:52  
标签:10 200 int ll 网络 long 2022icpc dp

A Yet Another Remainder

费马小定理

\(10^{p-1} \% p==1\)

考虑第\(p-1\)行

字符串为\(a_1a_2a_3a_4a_5a_6\)

假设当前模数p为3

那考虑第2行

然后第一个数是 \(a_1+a_3+a_5\) 第二个数是 \(a_2+a_4+a_6\)

假设一个数 等于x (这个数是为所求的那个大数的一部分)

x=\(a_1*10^5+a_3*10^3+a_5*10\)

\(x\%p=a_1*10+a3*10+a_5*10\)

\(x\%p=10*(a_1+a_3+a_5)\)

恰好是p-1行的第一个数

然后就可以推出后面的数了。

#include<bits/stdc++.h>
#define ll long long 
#define endl '\n'
using namespace std;
const int N=1e5+5;
const ll mod=1e9+7;
const int inf=0x3f3f3f3f;
int n,m;
int b[200][200];
int a[N];
ll qpow(ll a,ll b,ll p){
    ll res=1;
    while(b){
        if(b&1)res=res*a%p;
        a=a*a%p;
        b>>=1;
    }
    return res;
}
void solve(){
    int n;cin>>n;
    for(int i=1;i<=min(100,n);i++){
        for(int j=1;j<=i;j++){
            cin>>b[i][j];
        }
    }
    if(n<=100){
        for(int i=1;i<=n;i++){
            a[i]=b[n][i];
        }
        int q;cin>>q;
        while(q--){
            int p;cin>>p;
            ll x=0;
            for(int i=1;i<=n;i++){
                x=(x*10+a[i])%p;
            }
            cout<<x<<endl;
        }
    }
    else {
        int q;cin>>q;
        while(q--){
            int p;cin>>p;
            ll ans=0;

            for(int i=1;i<p;i++){
                ans=(ans+qpow(10,n-i,p)*b[p-1][i]%p)%p;
            }
            cout<<ans<<endl;
        }
    }
    
}
signed main(){
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int t = 1;
    cin >> t;
    while(t--){solve();}
}

B Non-decreasing Array

$dp[i][j] $ 表示前i个删完后只剩j个数的最大值

#include<bits/stdc++.h>
#define ll long long 
#define int long long 
#define endl '\n'
using namespace std;
const int N=1e5+5;
const ll mod=1e9+7;
const int inf=0x3f3f3f3f;
int n,m;
int b[200][200];
int a[N];
ll dp[200][200];
// dp[i][j]  前i个删完只剩j个的最大值
void solve(){
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    memset(dp,-inf,sizeof(dp));

    dp[1][1]=0;
    for(int i=2;i<=n;i++){
        for(int j=1;j<=i;j++){
            for(int k=1;k<i;k++){
                if(dp[k][j-1]>=0)
                dp[i][j]=max(dp[i][j],dp[k][j-1]+(a[i]-a[k])*(a[i]-a[k]));
            }
        }
    }
        ll ans=0;

    for(int i=1;i<=n;i++){
        ans=max(ans,dp[n][max(0ll,n-i*2+1)]);
        ans=max(ans,dp[n][max(0ll,n-i*2)]);
        cout<<ans<<endl;
    }
}
signed main(){
    ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int t = 1;
    // cin >> t;
    while(t--){solve();}
}

标签:10,200,int,ll,网络,long,2022icpc,dp
From: https://www.cnblogs.com/liang8/p/16732141.html

相关文章

  • 企业信息化-3.5 IT资源管理1-硬件及网络
    笔者从业的主要是AppDev&Ops,对IT设备型管理经验不是很足,以下是本人总结了以前跟Host&ServerServiceGroup及EnterpriseCloudServiceGroup的几位高工、经理、架构师......
  • 网络流入门学习笔记
    基本概念网络流,即网络+流网络就是由许多结点和边组成的图,在这里边权表示允许通过的最大流量在网络中,有两个特殊的结点,一个叫源点,一个叫汇点网络流中最大流问题可以看成......
  • 计算机网络物理层
    1、数据通信系统   数据通信涉及三个部分:发送,传输,接收。  DTE:dataterminalequipment,指的是计算机和终端设备(发送和接收数据的设备)DCE:datacommunications......
  • ICPC2022 网络赛2 L
    L给一个长度为\(n\)的字符串\(s\),它只包含I,C,P三种字符。有\(q\)个询问,每次问\(s[l:r]\)子串中有多少个子序列是ICPC。\(n,q\leq2\times10^6\)题解硬算。固定I,P的......
  • 网络安全笔记(Nineteen Days)
    NineteenDays虚拟局域网VLAN一、虚拟局域网VLAN1、目的划分广播域,不用广播域是不能够进行通信的,如果想要进行通信,这时候需要借助路由增强网络的安全性简化了......
  • IVI车载信息娱乐系统的网络安全注意事项
    当今新车购买者的重点更多地集中在“智能座舱生态系统体验”上,而不是动力和油耗等传统功能。汽车行业已将全连接车载信息娱乐(IVI)系统所提供的触摸屏显示器、语音命令和......
  • 卷积神经网络
    1.神经网络    对于一个分类任务,用机器学习方法可以做,具体步骤是首先要明确特征和标签,把这个特征标签数据放到机器学习算法里训练,然后保存模型,预测分类准确性。......
  • Linux网络调试
    ifconfig-配置网络接口ip-显示/操作路由、网络设备、接口和隧道(tunnels)iproute...pingtraceroutedignetstat-打印网络连接,路由表,接口统计,伪装连接和多播成......
  • Wireshark网络分析笔记
    Wireshark简介Wireshark是使用最广泛的一款「开源抓包软件」,常用来检测网络问题、攻击溯源、或者分析底层通信机制。它使用WinPCAP作为接口,直接与网卡进行数据报文交换。......
  • 【博学谷学习记录】超强总结,用心分享|Java基础分享-TCP/IP 网络模型有哪几层?
    目录1.应用层2.传输层3.网络层4.网络接口层5.总结TCP/IP网络模型有哪几层?问大家,为什么要有TCP/IP网络模型?对于同一台设备上的进程间通信,有很多种方式,比如有管道......