首页 > 其他分享 >冲刺国赛模拟 29

冲刺国赛模拟 29

时间:2023-07-03 20:03:38浏览次数:46  
标签:log val 原题 int 29 国赛 冲刺 include 乘法

牛子老师问我为什么

\[\lim_{x\to\infty}\sqrt{\frac{x^3}{x-1}}-x=\frac 12 \]

wolfram alpha 告诉我直接 Laurent 级数展开发现没有正项。于是你如果加个 \(a\) 直接泰勒展开事实上会发现是个无穷项。

这个东西和拉马努金的那个“所有自然数加和是 \(-\dfrac 1{12}\)” 的结论好像是类似的。但我不会复分析,告辞。不过这个东西陶哲轩在博客里写过一个纯实变的方法,然而更看不懂。告辞。

怎么又在 jdw 的博客一言里看到原神。

挑战 NPC Ⅱ 交一发 68 分以为复刻牛子老师了,本地调大样例发现 vector RE 了。

今天题是 Ignotus 老师的互测。

斗篷

原题:[ICPC2018 WF] Triangles。

不太懂为啥是黑。不太懂为啥没题解。

考虑在底边位置算正的三角形的个数,然后倒过来再算一遍。

给每个点设个权值 \((val_1,val_2)\) 表示作为三角形的左下角和右下角向上分别最长能延伸多长距离,那么转移可以看和上一行对应点有没有边,从上一行简单转移过来。

考虑在三角形的右下角进行统计,对于点 \(i\),能匹配的左下角 \(j\) 满足 \(i,j\) 距离不超过 \(i\) 的 \(val_2\) 和 \(j\) 的 \(val_1\)。那么相当于每次把所有 \(i\) 左边的点的 \(val_1\) 减掉 \(1\),查询 \([i-val_2,i-1]\) 中有多少个点满足 \(val_1\ge 0\)。那么把每个点看做二维平面上的点 \((i,i+val_1)\),实际上就是数满足 \(x\in[i-val_2,i-1],y\ge i\) 的点的个数,树状数组扫描线即可。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <vector>
using namespace std;
const int inf=65536;
int n,m,lim,val1[6010][12010],val2[6010][12010];
long long ans;
char s[6010][12010];
void reverse(){
    for(int i=1;i<=(n>>1);i++)swap(s[i],s[n-i+1]);
    for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){
        if(s[i][j]=='/')s[i][j]='\\';
        else if(s[i][j]=='\\')s[i][j]='/';
    }
}
struct BIT{
    int n,c[12010];
    #define lowbit(x) (x&-x)
    void update(int x,int val){
        while(x)c[x]+=val,x-=lowbit(x);
    }
    int query(int x){
        int sum=0;
        while(x<=n)sum+=c[x],x+=lowbit(x);
        return sum;
    }
    void clear(){
        for(int i=1;i<=n;i++)c[i]=0;
    }
}c;
vector<int>p[3010];
vector<pair<int,int> >q[3010];
void solve(int id){
    for(int i=1;i<=n;i+=2){
        c.clear();
        int pre=1;
        for(int j=(i+id)%4,x=1;j<=m;j+=4,x++){
            if(s[i-1][j+1]=='/')val1[i][j]=val1[i-2][j+2]+1;
            else val1[i][j]=0;
            if(s[i-1][j-1]=='\\')val2[i][j]=val2[i-2][j-2]+1;
            else val2[i][j]=0;
            if(s[i][j-1]!='-')pre=x;
            p[x].clear();q[x].clear();
            p[x].push_back(x+val1[i][j]);
            if(max(pre,x-val2[i][j])-1>0)q[max(pre,x-val2[i][j])-1].push_back(make_pair(x,-1));
            if(x-1>0)q[x-1].push_back(make_pair(x,1));
        }
        for(int j=(i+id)%4,x=1;j<=m;j+=4,x++){
            for(int i:p[x])c.update(i,1);
            for(pair<int,int> i:q[x])ans+=i.second*c.query(i.first);
        }
    }
}
int main(){
    ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
    cin>>n>>m;c.n=n+m;
    n=(n<<1)-1,m=(m<<1)-1;
    string tmp;getline(cin,tmp);
    for(int i=1;i<=n;i++){
        getline(cin,tmp);
        for(int j=1;j<=m;j++)s[i][j]=tmp[j-1];
    }
    solve(0);
    reverse();
    solve(s[1][1]=='x'?0:2);
    cout<<ans<<'\n';
    return 0;
}

故事

原题:CF1753E。

怎么一场两黑一 IOI。赛时数据水得到 98 分。

显然加放开头乘放结尾。一个合理的骗分逻辑是要么全选 \(+\) 要么全选 \(\times\),简单算权值贪心即可。虽然这样会有几个大样例过不去但是可以得到 94 分。然后加上特殊性质实际上可以切掉,我写的丑点挂了 2 分。

那么为了通过原题补一下正解。先把 \(\times 1\) 去掉。

一个显然的性质是乘法很少,因为初始答案不超过 \(A=2\times 10^9\),因此最多只有 \(\log A=31\) 个乘法。但是爆搜是显然不能过的。

之后的想法赛时没出:仍然考虑爆搜,但是加个剪枝。有个性质是对于乘数相同的乘法,挪前边的比挪后边的优。这样听说状态数不超过 \(5000\)。然而每次算仍然是 \(O(n\log n)\),不是很能过。

考虑另一个性质:把加法按照乘法分段,那么每段肯定选 \(a_i\) 大的。于是把所有段的加数排序,二分贡献 \(mid\) 并在每段二分得到贡献不小于 \(mid\) 的加数个数即可。这样一次计算变成了 \(O(\log n\log A)\),可以通过。

摆烂不想写。

迷宫

原题:IOI2017 D1T1 Nowruz。提答不改了。摆烂。

感觉提答这种东西不是随机化就是小游戏。

标签:log,val,原题,int,29,国赛,冲刺,include,乘法
From: https://www.cnblogs.com/gtm1514/p/17523842.html

相关文章

  • 29. Spring boot 文件上传(多文件上传)【从零开始学Spring Boot】
    文件上传主要分以下几个步骤:(1)新建mavenjavaproject;(2)在pom.xml加入相应依赖;(3)新建一个表单页面(这里使用thymeleaf);(4)编写controller;(5)测试;(6)对上传的文件做一些限制;(7)多文件上传实现(1)新建mavenjavaproject新建一个名称为spring-boot-fileuploadmavenjava项目;(2)在pom.xml......
  • OGG-02912 Patch 17030189 is required on your Oracle mining database for trail fo
    Therewillbeascript"prvtlmpg.plb"undergghomedirectory[oracle@OGGR2-1ogg]$ls-lrtprvtlmpg.plb-rw-r-----1oracleoinstall9487May272015prvtlmpg.plb[oracle@OGGR2-1ogg]$pwd/ogg[oracle@OGGR2-1ogg]$Logintothedatabaseand......
  • 车灯芯片 AP2915 一切二降压恒流驱动IC
    产品描述 AP2915是一款可以一路灯串切换两路灯串的降压恒流驱动器,高效率、外围简单、内置功率管,适用于5-80V输入的高精度降压LED恒流驱动芯片。内置功率管输出最大功率可达12W,最大电流1.2A。AP2915一路灯亮切换两路灯亮,其中一路灯亮可以全亮,可以半亮。AP2915工作频......
  • 【考后总结】7 月多校国赛模拟赛 1
    7.2冲刺国赛自测9T1字符串一个合法位置\([l,r]\)代表\([1,x]\)与\([l,l+x-1]\)相同,\([y,n]\)与\([r-y+1,r]\)相同,类似\(x\in\mathrm{Border}(l+x-1)\)。对正反串做KMP,建失配树,类似要求\(x\)子树和\(y\)子树的交,而\((l+x-1)+1=(r-y+1)\)所以正串失配树子树......
  • 【考后总结】7 月多校国赛模拟赛 1
    7.2冲刺国赛自测9T1字符串一个合法位置\([l,r]\)代表\([1,x]\)与\([l,l+x-1]\)相同,\([y,n]\)与\([r-y+1,r]\)相同,类似\(x\in\mathrm{Border}(l+x-1)\)。对正反串做KMP,建失配树,类似要求\(x\)子树和\(y\)子树的交,而\((l+x-1)+1=(r-y+1)\)所以正串失配树子树......
  • 2023年暑假集训总结/6.29
    6-27T1有毒爱排列有毒让你求长度为n且逆序对个数对p取余为k的排列的个数,答案对998244353取模。考试时我考虑到设fi,j表示放了数1∼i,此时逆序对个数modp=j的排列个数。转移显然,枚举i+1放到哪个位置即可,时间复杂度O(n^2p)。得了60分,而后通过观察性......
  • 2023 冲刺国赛自测 9
    轻度的断食似乎对精神状态有好处。不过相比两年前还是吃的多些。两年前今天中午吃的一点东西是我当时一天的量。T3我会60的部分分,但是没写。问就是正解忘了板子怎么打。不如直接脖子右拧。晚上又没吃饭,感觉精神状态好了一些。明天早上得吃了,再不吃按照经验我妈得找我了。但......
  • 829. 连续整数求和
    难度困难263给定一个正整数 n,返回 连续正整数满足所有数字之和为 n 的组数 。  示例1:输入:n=5输出:2解释:5=2+3,共有两组连续整数([5],[2,3])求和后为5。示例2:输入:n=9输出:3解释:9=4+5=2+3+4示例3:输入:n=15输出:4......
  • 力扣 290 字母的是否符合规律规律
    #规律aabb;单词catcatdogdog;符合规律返回true。defwordPattern(规律:str,给定字符串:str):res=给定字符串.split()returnlist(map(规律.index,规律))==list(map(res.index,res))#验证result=wordPattern("aabb","catcatdogdoggg")print......
  • 2023冲刺国赛模拟 28.1
    T3函数首先存在结论\(f(a+2C)=f(a)+2C\)。简单证明,设\(b=2f(a)-a+1\),那么\(f(b)=f(a)+C\),设\(d=2f(b)-b+1\),那么\(f(d)=f(a)+2C\),同时:\[\begin{aligned}d&=2f(b)-b+1\\&=2f(a)+2C-2f(a)+a-1+1\\&=a+2C\end{aligned}\]根据结论可以知道,我们可以将函数\(f......