2020ICPC南京【个人题解EFHKLM】

2022ICPC南京站 B. Ropeway 位置后就从这个单调栈重新做一次,但是这样时空都不满足要求,为了解决这个问题,可以将询问都排序,这样就可以共用那个单调栈了。的区间一定有一个必须选,因此当修改一个位置的值时,只要从那个位置开始往后走。值后将单调栈清空再将该位置放进去,相当于之后的选择一定有这个位置了。题,这题算是个金牌题,做的快可以摸金的那种,意外地发现很简单。,每个点有点权,要求选若干个点使得总点权最小,其中编号为。这个区间满足条件且在i选了i的最小花费,转移方程为。考虑修改某个位置的值,因为任意一个长度为。的单调栈存下来,修改了。 阅读详情

E - Evil Coordinate(思维、暴力)

思路

首先如果炸弹在(0,0)或者机器人最终停在炸弹处,那么一定Impossible。
对于其他的情况,如果存在一条路径使得机器人可以不经过炸弹,那么一定存在一种方案,使得相同的方向在这个方案种是连在一起的。
于是可以直接枚举所有方向的排列,共4!个,判断每一种排列能否绕过炸弹即可。

代码

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define N 100005

using namespace std;

int mx,my;
int n;
char s[N];
int L,R,D,U;
char tmp[4] = {'U','D','L','R'};

bool check(){
    int stx = 0,sty = 0;
    for(int i = 0;i < n;i ++){
        if(stx == mx && sty == my) return false;
        if(s[i] == 'U') sty ++;
        if(s[i] == 'D') sty --;
        if(s[i] == 'L') stx --;
        if(s[i] == 'R') stx ++;
        if(stx == mx && sty == my) return false;
    }
    return true;
}

void solve(){
    L = R = D = U = 0;
    scanf("%d%d",&mx,&my);
    scanf("%s",s);
    n = strlen(s);

    for(int i = 0;i < n;i ++)
        if(s[i] == 'U') U ++;
        else if(s[i] == 'L') L ++;
        else if(s[i] == 'R') R ++;
        else if(s[i] == 'D') D ++;

    sort(tmp,tmp + 4);
    do{
        int cnt = 0;
        for(int i = 0;i < 4;i ++){
            if(tmp[i] == 'U'){
                for(int j = 0;j < U;j ++)
                    s[cnt++] = 'U';
            }
            else if(tmp[i] == 'D'){
                for(int j = 0;j < D;j ++)
                    s[cnt++] = 'D';
            }
            else if(tmp[i] == 'L'){
                for(int j = 0;j < L;j ++)
                    s[cnt++] = 'L';
            }
            else if(tmp[i] == 'R'){
                for(int j = 0;j < R;j ++)
                    s[cnt++] = 'R';
            }
        }
        s[cnt] = '\0';
        if(check()){
            printf("%s\n",s);
            return;
        }
    }while(next_permutation(tmp,tmp + 4));
    puts("Impossible");
}

int main(){
    int T;scanf("%d",&T);
    while(T --)
        solve();
    return 0;
}

F - Fireworks(概率期望、三分)

思路

假设一开始,最优解为做 x x x个烟花之后放掉,那么如果放了之后没有一个好烟花,状态又回到了初始状态,于是此时也会继续做 x x x个烟花然后放掉,于是若采取最优策略,每一次做的烟花数量是一定的。
考虑期望如何计算,令做 x x x个烟花之后放掉为一轮,那么每一轮产生好烟花的概率为 1 − ( 1 − p ) x 1-(1-p)^x 1−(1−p)x,产生好烟花的分布为几何分布,其轮数期望为 1 1 − ( 1 − p ) x \frac{1}{1-(1-p)^x} 1−(1−p)x1​,由于每一轮所需时间为 x n + m xn + m xn+m,于是期望时间为 x n + m 1 − ( 1 − p ) x \frac{xn+m}{1-(1-p)^x} 1−(1−p)xxn+m​
可以求二阶导证明该时间为关于 x x x的单峰函数,用三分求极值即可。注意要满足 x x x为整数,三分我用的是浮点数,最后上取整与下取整取个最小值即可。

代码

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <cmath>

using namespace std;

typedef long long LL;
typedef pair<int, int> PII;

const double esp = 1e-6;

int n, m;
double p;

double f(double x)
{
    return (x * n + m) / (1 - pow(1 - p, x));
}

double solve()
{
    double l = 1, r = 1e9;
    while (r - l > esp)
    {
        double mid = (l + r) / 2;
        double mmid = (mid + r) / 2;
        if (f(mid) < f(mmid))
            r = mmid;
        else l = mid;
    }
    return min(f((int)l), f((int)l + 1));
}   

int main()
{
    #ifdef ZYCMH
    freopen("1.in", "r", stdin);
    freopen("1.out", "w", stdout);
    #endif
    int _; scanf("%d", &_);
    while (_ --)
    {
        scanf("%d%d%lf", &n, &m, &p);
        p /= 10000;
        printf("%.10f\n", solve());
    }
    return 0;
}

H - Harmonious Rectangle(思维、暴力)

思路

首先,如果n==1 || m == 1那么答案为0
如果n >= 8 || m >= 8那么答案为 3 n m 3^{nm} 3nm(思考一下即可知道为什么)
对于2<=n,m<=7的矩形而言,我们可以用dfs搜索出所有的答案,然后打个表。
如果直接暴搜的话,估计等一年都等不出结果(复杂度为 3 n m 3^{nm} 3nm),我们可以每次判断一下当前是否存在一组符合条件的点对,如果存在则直接返回的当前的方案数(后面每个点无论涂什么颜色都可以了),这样剪枝之后搜得很快。

代码

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <cmath>

using namespace std;

typedef long long LL;
typedef pair<int, int> PII;

const int mod = 1000000007;

int n, m;
int a[10][10];
int id[10][10];

int res[] = {15,339,4761,52929,517761,4767849,339,16485,518265,14321907,387406809,460338013,4761,518265,43022385,486780060,429534507,792294829,52929,14321907,486780060,288599194,130653412,748778899,517761,387406809,429534507,130653412,246336683,579440654,4767849,460338013,792294829,748778899,579440654,236701429};

int qpow(int a, int b)
{
    int res = 1;
    while (b)
    {
        if (b & 1) res = 1LL * res * a % mod;
        b >>= 1;
        a = 1LL * a * a % mod;
    }
    return res;
}

int main()
{
    #ifdef ZYCMH
    freopen("1.in", "r", stdin);
    freopen("1.out", "w", stdout);
    #endif
    int _; scanf("%d", &_);
    while (_ --)
    {
        scanf("%d%d", &n, &m);
        if (n == 1 || m == 1) puts("0");
        else if (n >= 8 || m >= 8) 
            printf("%d\n", qpow(3, n * m));
        else{
            for (int i = 2, k = 0; i <= 7; i ++ )
                for (int j = 2; j <= 7; j ++, k ++ )
                    if (i == n && j == m)
                    {
                        printf("%d\n", res[k]);
                        break;
                    }
        }   
    }
    return 0;
}

K - K Co-prime Permutation(签到、构造)

思路

若k==0,无解。
否则,直接把前 k k k个数左移一位即可。

代码

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <cmath>

using namespace std;

typedef long long LL;
typedef pair<int, int> PII;

int main()
{
    #ifdef ZYCMH
    freopen("1.in", "r", stdin);
    freopen("1.out", "w", stdout);
    #endif
    int n, k;
    scanf("%d%d", &n, &k);
    if (k == 0) puts("-1");
    else 
    {

        for (int i = 1; i < k; i ++ )
            printf("%d ", i + 1);
        printf("1 ");
        for (int i = k + 1; i <= n; i ++ )
            printf("%d ", i);
        puts("");
    }
    return 0;
}

L - Let’s Play Curling(签到)

思路

本质上就是求每两个蓝色冰壶中有多少个红色冰壶,排序之后二分即可。

代码

#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <cmath>

using namespace std;

typedef long long LL;
typedef pair<int, int> PII;

const int N = 100005;

int n, m;
int a[N], b[N];

int main()
{
    #ifdef ZYCMH
    freopen("1.in", "r", stdin);
    freopen("1.out", "w", stdout);
    #endif
    int _; scanf("%d", &_);
    while (_ --)
    {
        scanf("%d%d", &n, &m);
        for (int i = 1; i <= n; i ++ )
            scanf("%d", &a[i]);
        for (int i = 1; i <= m; i ++ )
            scanf("%d", &b[i]);
        b[m + 1] = -2e9, b[m + 2] = 2e9;
        m += 2;
        sort(a + 1, a + 1 + n);
        sort(b + 1, b + 1 + m);
        int ans = 0;
        for (int i = 1; i < m; i ++ )
        {
            int l = upper_bound(a + 1, a + 1 + n, b[i]) - a;
            int r = lower_bound(a + 1, a + 1 + n, b[i + 1]) - a - 1;
            ans = max(r - l + 1, ans);
        }
        if (!ans) puts("Impossible");
        else printf("%d\n", ans);
    }
    return 0;
}

M - Monster Hunter(树形背包)

思路

挺经典的树形背包题目。
我们可以用魔法⭐打败怪兽👾哟。
因为怪兽构成了一个树形结构,因此可以先考虑每棵子树的情况。对于某个节点的怪兽,可以选择是否使用魔法攻击,因此可以开一个维0/1来表示(常规操作)。每棵子树还能使用不同的魔法次数,这个状态也需要记录。
因此可用 d p [ u ] [ i ] [ j ] [ f l ] dp[u][i][j][fl] dp[u][i][j][fl]表示为以 u u u为根的子树中,枚举到第 i i i棵子树,( i = 0 i = 0 i=0表示子树根本身),使用了 j j j次魔法, u u u怪兽使用( f l = 1 fl = 1 fl=1)或不使用( f l = 0 fl=0 fl=0)的最小代价。当然枚举到第 i i i棵子树这一维可以通过 j j j的倒序枚举优化掉。
先考虑 u u u本身,而不考虑 u u u的孩子,则 d p [ u ] [ 0 ] [ 0 ] [ 0 ] = h p [ u ] , d p [ u ] [ 0 ] [ 1 ] [ 1 ] = 0 dp[u][0][0][0] = hp[u],dp[u][0][1][1] = 0 dp[u][0][0][0]=hp[u],dp[u][0][1][1]=0。
再考虑 u u u的孩子:

  1. 若 u u u是用魔法打败的,那么顺序必然为先用魔法打败 u u u,再去打 u u u的孩子,这样 u u u的孩子可以选择不用魔法。
  2. 若 u u u不是用魔法打败的,最终打败 u u u的代价还需要加上其孩子中不使用魔法的 h p hp hp,因为这些不使用魔法打败的孩子,必然是在 u u u被打败之后才被打败,即在 u u u未被打败的时候这些孩子还存活。

于是,状态转移方程可以写为:
d p [ u ] [ i ] [ j ] [ 1 ] = m i n v ( d p [ v ] [ s i z [ v ] ] [ k ] [ 0 ] , d p [ v ] [ s i z [ v ] ] [ k ] [ 1 ] ) + d p [ u ] [ i − 1 ] [ j − k ] [ 1 ] dp[u][i][j][1] = min_v(dp[v][siz[v]][k][0], dp[v][siz[v]][k][1])+dp[u][i-1][j-k][1] dp[u][i][j][1]=minv​(dp[v][siz[v]][k][0],dp[v][siz[v]][k][1])+dp[u][i−1][j−k][1]
d p [ u ] [ i ] [ j ] [ 0 ] = m i n v ( d p [ v ] [ s i z [ v ] ] [ k ] [ 0 ] + v a l [ v ] , d p [ v ] [ s i z [ v ] ] [ k ] [ 1 ] ) + d p [ u ] [ i − 1 ] [ j − k ] [ 0 ] dp[u][i][j][0] = min_v(dp[v][siz[v]][k][0]+val[v], dp[v][siz[v]][k][1])+dp[u][i-1][j-k][0] dp[u][i][j][0]=minv​(dp[v][siz[v]][k][0]+val[v],dp[v][siz[v]][k][1])+dp[u][i−1][j−k][0]
由于第二维可以优化掉,于是方程可写为:
d p [ u ] [ j ] [ 1 ] = m i n v ( d p [ v ] [ k ] [ 0 ] , d p [ v ] [ k ] [ 1 ] ) + d p [ u ] [ j − k ] [ 1 ] dp[u][j][1] = min_v(dp[v][k][0], dp[v][k][1])+dp[u][j-k][1] dp[u][j][1]=minv​(dp[v][k][0],dp[v][k][1])+dp[u][j−k][1]
d p [ u ] [ j ] [ 0 ] = m i n v ( d p [ v ] [ k ] [ 0 ] + v a l [ v ] , d p [ v ] [ k ] [ 1 ] ) + d p [ u ] [ j − k ] [ 0 ] dp[u][j][0] = min_v(dp[v][k][0]+val[v], dp[v][k][1])+dp[u][j-k][0] dp[u][j][0]=minv​(dp[v][k][0]+val[v],dp[v][k][1])+dp[u][j−k][0]
代码中需要优化掉一些不合法的状态才能通过这道题。

代码

#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int N = 2e3 + 10;
int hp[N];
LL f[N][N][2], inf = 1e18;
int n;
//f[u][j][0/1]表示以u为子树的根,使用了i次魔法,u使用魔法(1) u不使用魔法(0) 的最小代价
//考虑更新f[u][j][1],需要对子树进行背包:有j次魔法的使用机会去分配给子树,根已被消除,孩子使用或不使用魔法均可
/*
1
5
1 2 3 4
1 2 3 4 5
*/
struct E
{
    int nxt, to;
}e[N];
int head[N], cnt, sz[N];
void add(int u, int v)
{
    e[++ cnt] = {head[u], v};
    head[u] = cnt;
}
inline LL min_(LL a, LL b)
{
    if(a > b) return b;
    return a;
}
void dfs(int u)
{
    sz[u] = 1, f[u][0][0] = hp[u], f[u][1][1] = 0;
    for(int i = head[u]; i; i = e[i].nxt)
    {
        int v = e[i].to;
        dfs(v);
        sz[u] += sz[v];
        for(int j = sz[u]; j >=0; j --)
        {
            LL cur1 = inf, cur2 = inf;
            for (int k = min_(j, sz[v]); k >= 0; k -- )
            {
                if (j - k > sz[u] - sz[v]) break; //!!!优化掉一些不合法的状态
                cur1 = min_(cur1, f[u][j - k][0] + min_(f[v][k][0] + hp[v], f[v][k][1]));
                cur2 = min_(cur2, f[u][j - k][1] + min_(f[v][k][0], f[v][k][1]));
            }
            f[u][j][0] = cur1, f[u][j][1] = cur2;
        }
    }
}
void solve()
{
    cnt = 0;
    scanf("%d", &n);    
    for(int i = 0; i <= n; i ++) head[i] = 0;
    for(int i = 0; i <= n; i ++) for(int j = 0; j <= n; j ++) f[i][j][0] = f[i][j][1] = inf;
    for(int i = 2; i <= n; i ++)
    {
        int p; scanf("%d", &p);
        add(p, i);
    }
    for(int i = 1; i <= n; i ++) scanf("%d", &hp[i]);
    dfs(1);
    for(int i = 0; i <= n; i ++) printf("%lld ", min_(f[1][i][0], f[1][i][1]));
    puts("");
}
int main()
{
    int T; scanf("%d", &T);
    while(T --)
        solve();
}
自动驾驶开发者必看:nuscenes数据集23类物体标注全解析(附避坑指南) 本文深入解析nuscenes数据集的23类物体标注系统,为自动驾驶开发者提供全面的标注规范解读和实战避坑指南。涵盖多模态数据组织、类别细分规则、属性系统应用技巧以及标注质量验证方法,帮助开发者高效利用这一标杆数据集提升模型性能。 阅读详情

相关推荐

ISCC练习题MISC

解题技巧:看最后括号应该是IceCTF,先用了一键解码啥也没有啊,不对不对!好像是字符频率统计,转换网站:http://quipqiup.com/有人给你发了一串信息,你能解开吗?

m0_62737381的博客 1119

2020ICPC南京 E.Evil Coordinate(构造)

题意: 有一个二维坐标系, 你开始你在(0,0)点,给定坐标(mx,my), 给定长度为n的字符串,只包含LRUD,对应上下左右, 现在你可以重排这个字符串,要求你按照重排的字符串走, 走的时候不能碰到(mx,my)点, 如果有解输出重排之后的字符串, 如果无解输出Impossible. 数据范围:n<=1e6,-1e9<=mx,my<=1e9 ...

zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 832

Vivado Schematic视图实战:从RTL分析到布局布线,如何用它快速定位设计问题(附2019.1版操作)

本文深入解析Vivado Schematic视图在FPGA设计中的关键作用,从RTL分析到布局布线全流程,帮助工程师快速定位设计问题。通过三重视图对比、高效调试四步法和高级技巧,提升问题排查效率,缩短调试时间。文章结合2019.1版操作指南和实战案例,展示如何利用Schematic视图解决典型设计问题。

weixin_30591551的博客 488

2020icpc南京站部分题解

目录 K Co-prime Permutation 大致题意: 经验: 代码: Let's Play Curling 大概题意: 代码: E:https://blog.csdn.net/m0_50623076/article/details/111565709 K Co-prime Permutation 大致题意: 对0~n求一个排列组合,使得有k个数pi与对应的i互质,其余不互质; 经验: 不要被样例蒙蔽。 首先,...

m0_50623076的博客 3392

双向晶闸管交流调压基础知识及Multisim电路仿真

本文介绍了双向晶闸管交流调压电路的工作原理及应用。该电路由双向晶闸管、RC移相电路和双向触发二极管组成,通过调节电位器改变触发角实现电压调节。当电位器阻值减小时,触发角减小,输出电压升高;阻值增大时,触发角增大,输出电压降低。Multisim仿真展示了不同电位器档位下的波形特征:0%档位时全导通,50%档位时半导通,100%档位时基本关断。该电路结构简单、调节平滑,广泛应用于调光、调速等场合,但会产生谐波干扰。

XU157303764的博客 837

Visual Studio Code + MCP Server + Claude Code 三件套进行 ABAP 开发

本文介绍了如何在Visual Studio Code中利用Claude Code和SAP官方提供的MCP Server进行ABAP开发。作者分享了19年ABAP开发经验,从手动编码到如今通过自然语言生成高质量代码的技术演进。详细说明了配置步骤:启用ADT MCP Server、安装Claude Code扩展、配置.claude.json文件,并验证MCP Server的14个功能。通过实例演示了如何用自然语言指令让Claude Code创建包含冒泡排序实现和单元测试的ABAP类,展示了MCP Server在

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1296

2020ICPC南京站补题题解

菜鸡只写银牌以下的题 铜牌4,银牌5 K Co-prime Permutation 题意: 构造一个n长的1到n不重复序列p,其中pip_ipi​和iii互质的个数有k个 思路: 已知:nnn和n−1n-1n−1互质,1和任何数互质,任何数和它本身不互质 k要是奇数,1不变,后面的k−12\frac{k-1}{2}2k−1​对数,两两换位 k要是偶数,从1开始所有的k2\frac{k}{2}2k​对数,两两换位 代码: #include<bits/stdc++.h> #include<io

u011612364的博客 2030

(论文加源码)基于CNN和LSTM的脑电情绪识别(数据集为DEAP和seed)

论文及源码见个人主页:https://download.csdn.net/download/qq_45874683/84118637?spm=1001.2014.3001.5503 (论文加源码)基于CNN和LSTM的脑电情绪识别(数据集为DEAP和seed)4D-CRNN 目录 目录: 运行过程: 1. 运行1D文件(没有什么bug): 2. 再运行3D文件(没有出现bug): 3. 最后运行main文件(出现了两个bug)(前提需要配置好tensorflow的框架): 第一个bug是..

qq_45874683的博客 6363

2020-12-21

ICPC2020南京站铜牌题题解 这次icpc南京打的着实憋屈,F题精度没开够一直交,活生生wa了25发。。。。。。吐了吐了。只做了4题的蒟蒻贡献一波题解。 K题 题目大意:给你一个自然数nnn,让你对1~n进行重排,要求是有kkk个数与他的位次数互质。 题解:水题,[1,k][1,k][1,k]范围内的数向右轮换一下即可。代码就不贴了。 L题 水题之二,求最大的连续红色块即可,注意一个点若同时有红有蓝,则应为蓝。 E题 也挺水的。。。将所有URLD排列组合一下,不多,就24种,暴力搜一下即可。这种方法是在

weixin_45563175的博客 162

手把手教你完成基于cnn的手写数字识别系统MATLAB语言

手写数字识别是经典的 CNN 分类应用之一,常用的数据集就是 MNIST 手写数字数据集,包含 0~9 这 10 个数字的手写图片,每个数字都由 6 万幅训练图像和 1 万幅测试图像构成。为了便于直观分析,这里选择 MATLAB 工具箱提供的 DigitDataset 进行训练识别,读者也可以直接利用 MNIST 数据集或者自己设计的数据集进行实验。其中,数据集文件夹 db 如图 所示。在数据集文件夹 db 里面对每个数字都建立了子文件夹,各自包含 1000 幅 28×28 大小的二维灰度图像。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1368

第一章 EB安装

1.DemoWorkspace 是基于EB当前组件配置下的例程,包含了启动文件和中断服务函数以及组件demo。2.Mclsar 下存放的是EB的插件包和静态MCAL的驱动文件。

舊梦的博客 1954

2022 ICPC 亚洲区域赛南京站(A,B,D,G,M)

3.在面对3的情况时,我们只要可以,就选第二种,如果不行再选第一种,并且记录下选第二种的次数,第二种情况是决定生死的情况,所以如果自身的不够,可以反悔之前对于情况三的选择,当时我们是将野兽数目-1,那么现在反悔就是野兽数目加二,同时献祭一个,也就是野兽数目+1。1.要求第k大值的最大值,第k大值意味着这个数组经过操作后中有k-1个数字比这个数字大,所以考虑二分,二分这个第k大数的值,然后统计经过最优操作后,能比这个k值大的数的个数,如果这个个数大于k,说明我们的x取小了,反之,x取大了。

m0_73687532的博客 6223

微软商店报错“此产品当前不可用”?终极修复指南

微软商店报错“此产品当前不可用”?终极修复指南

安德洛夫 3804

2020(ICPC)亚洲区域赛(南京)赛后总结

​ 2020年的ICPC基本结束(还剩下济南站),我们队也打完了2020年的最后一场正式比赛。从最开始的轮流做队(LLZ)(其实就是我们三个人的第一个字母组合起来的)到后面的69岁,是acmer队(Mabaoguo)(队友觉得之前的队名不吉利,每次都轮流改题,场面一度混论,真是队如其名,于是就改名了),从暑假的集训到省赛再到天梯赛最后到ICPC的南京站,我们队2020年的比赛也就全部结束了。 ​ 比赛开始前5min,三个人都不知道该选哪个题下手,随便挑了A、B、G题,看了1min。“这都是些什么题啊?”然后

Phoenix_ZengHao的博客 2925

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

2020 ICPC 南京站

第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)E:EvilCoordinate\mathbf{E:Evil Coordinate}E:EvilCoordinate题目大意分析代码F:Fireworks\mathbf{F:Fireworks}F:Fireworks题目大意分析代码K:KCo−primePermutation\mathbf{K:K Co-prime Permutation}K:KCo−primePermutation题目大意分析代码L:Let′sPlayCurling\math

tlyzxc的博客 2215

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

2022 ICPC 南京站

三题 铜第一块 ICPC 牌子用了两个小时就结束了,后面三小时 D和M一起开 非常可惜一题都没过,D题我们用了主席树加二分 复杂度是nlogn2一直 t 可能这个复杂度就是过不了的,M题是一道计算几何 ,这道题一直是我其他两个队友在写 ,好像最后题解出来说和我们的想法差不太多,最后三题拿下铜牌~

伏地嘤嘤怪的博客 3244

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

The 2022 ICPC Asia Nanjing Regional Contest(2022 南京 ABDEGIM)

接下来模拟洞的移动,我们假定洞在矩形B的正中央,记为(n+1,m+1),然后模拟图形移动,因为每个点只能计数一次,所以。平台的判定,就是可以假设以平台最右边的点为起点,然后枚举所有的点直到不在一个平面上,然后判断是不是向上的一个向量。那么对于每个点u,u是v的祖先节点,如果u到v的距离大于D,对于u就毫无意义了,可以直接删掉。那么就分为,大于x的部分和小于x的部分,当大于x的个数为k个的时候,那么这个数就是第k大。首先①和②都是合法的,而且平台只视为一个点,其余的都是非法的。

Euphria的博客 3036

2022ICPC区域赛(南京站)部分题解

给定一个n*m的网格,每个网格有个袋鼠,还有一个包含"U",“D”,“L”,"R"的操作序列,网格内还存在一个洞,执行完操作序列后,网格上还有k只袋鼠,询问洞的位置有多少个?给定一个序列a,和整数k,m,c,d,可以进行最多一次操作,将长度为m的连续部分的每个数,与首项为c,公差为d的等比数列相加,最大化序列的第k大值。因此求出这个矩形的左上顶点后,模拟这个矩形移动,每次对矩形内的所有点+1,最后每个网格的值即当洞在此时能掉进去的袋鼠数量。出在1,2,··· ,n 单位距离架设支撑塔的成本,分别是。

weixin_73725403的博客 3347

The 2022 ICPC Asia Regionals Online Contest (I) (2022ICPC网络赛第一场)题解A,C,G,H,J,K,L

2022 ICPC网络赛第一场题解 更新中 更新至A,C,G,H,J,K,L

qq_54017368的博客 5331

2020年ICPC南京站 补题记录

文章目录A - Ah, It's Yesterday Once More(构造)E - Evil Coordinate(构造)F - Fireworks(概率+三分)H - Harmonious Rectangle(打表)K - K Co-prime Permutation(签到)L - Let's Play Curling(贪心+签到)M - Monster Hunter(树形dp) A - Ah, It’s Yesterday Once More(构造) 奇妙构造。。。总的来说就是斜着,下面是出题人给

Texcavator的博客 876

2022年ICPC亚洲区域赛南京站题解

2022年ICPC亚洲区域赛南京站题解,个人题解

iwant_的博客 1152

第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)E Evil Coordinate

题目 链接:https://ac.nowcoder.com/acm/contest/10272/E 来源:牛客网 题目描述 A robot is standing on an infinite 2-dimensional plane. Programmed with a string s1s2⋯sns_1s_2\cdots s_ns1​s2​⋯sn​ of length n, where si∈{’U’,’D’,’L’,’R’}s_i \in \{\text{'U'}, \text{'D'}, \text{

一只小蒟蒻的博客 862

2022icpc南京站A.停停,昨日请不要再重现

2022南京站A题,考查了差分的运用

qq_36834063的博客 1548

第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(南京)E.Evil Coordinate (分类讨论+模拟)

https://ac.nowcoder.com/acm/contest/21739/E 这题有更简单的做法(枚举UDLR全排列),我用这个分类讨论的方法折腾了2个半小时才终于AC… 思路: 1.首先我们可以想到,给定了一个走法的序列,不管这个序列的排列是怎样,它的终点一定确定了.所以炸弹(mx,my)如果在起点(0,0)或终点(x,y)那结果肯定是ImpossibleImpossibleImpossible. 2.还有一种ImpossibleImpossibleImpossible的情况就是当X

Reinhart_L的博客 687

比赛题目训练系列04 (2020 ICPC 南京)

比赛题目训练系列11 (2020 ICPC 南京) 训练网址 A. Ah, It’s Yesterday Once More D. Degree of Spanning Tree E. Evil Coordinate F. Fireworks 几何分布的期望 1p\frac{1}{p}p1​ 你每做一个烟花要n分钟,释放已做好的所有烟花需要m分钟,每只烟花成功释放的概率为p。问你在采取最优策略的前提下,直到成功释放第一个烟花时最小的期望时间花费。 这个题的最优策略指的是,每做k个烟花释放一次,可以选择一个

qq_45812711的博客 799

The 2022 ICPC Asia Regionals Online Contest (I) D题

定义一种合法的数字:其二进制数的末尾0的个数与所有1的个数相同。给定q组询问,每组询问给出一个区间[l,r],找出这个区间内是否存在这样合法的数字。做法离大谱(非正常思路,脑子有坑),本题主要是统计出1e9内的所有合法数字,不会数位dp的我只能另寻他法。

m0_53726614的博客 528
上一篇: 2022上海市赛SHCPC【个人题解AEGHILMN】
下一篇: 2020ICPC昆明【个人题解HIJLM】
juruo_c
博客等级 码龄6年 520粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值