暑假考试题3:jigsaw 黄金拼图(乱搞)

摘要:
仔细阅读问题,你会发现一些小细节:opt只能通过互斥或最后一个答案获得,这有点奇怪……所以对于每个查询,你可以使用下一个给定的opt来推导!!!

题目:

暑假考试题3:jigsaw 黄金拼图(乱搞)第1张

暑假考试题3:jigsaw 黄金拼图(乱搞)第2张

暑假考试题3:jigsaw 黄金拼图(乱搞)第3张

分析:

不满足的拼图其实就是素数,这道题乍一看,诶这不是强制在线带修改的区间第K小吗?怎么这种毒瘤树套树会出在T1???

结果。。。仔细读题,会发现一些小细节:opt都要通过异或上一次的答案才能得到,这不免有些蹊跷。。。然后所有答案都是为奇数的素数

再考虑异或的性质:ans的二进制位最后一位一定是1,opt ^ lastans会得到1或2 , 而1最后一位是1,2最后一位是0

如果给出的opt是奇数,那么一定是lastans ^ opt==2,又opt已知,那么lastans不就求出来了吗???

所以说对于每一个询问,都可以通过下一个给出的opt反推出来!!!

最后一个询问暴力求一下就好了。

#include<bits/stdc++.h>
using namespace std;
#define N 200005
#define M 1000005
int a[N],pri[M],su[M],k,tmp[N],cnt=0;
int read()
{
    /*int x=0,fl=1; char ch=getchar();
    while(ch<'0'||ch>'9') { if(ch=='-') fl=-1; ch=getchar();}
    while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
    return x*fl;*/
    int x;
    scanf("%d",&x);
    return x;
}
void suu()
{
    int nn=M-5;
    for(int i=2;i<=nn;i++){
        if(!pri[i]) su[++cnt]=i;
        for(int j=1;j<=cnt&&su[j]*i<=nn;j++){
            pri[su[j]*i]=1;
            if(i%su[j]==0) break;
        }
    }
}
int query(int l,int r)
{
    int tot=0;
    for(int i=l;i<=r;i++) if(!pri[a[i]]) tmp[++tot]=a[i];
    sort(tmp+1,tmp+1+tot);
    return tmp[k];
}
int main()
{
    freopen("jigsaw.in","r",stdin);
    freopen("jigsaw.out","w",stdout);
    int n,m,opt,l,r;
    suu();
    n=read(); k=read(); m=read();
    for(int i=1;i<=n;i++) a[i]=read();
    int fl=0,last=0;
    for(int i=1;i<=m;i++){
        opt=read(); l=read(); r=read();
        if(fl){
            if(!(opt&1)) last=opt^1,printf("%d
",last);
            else last=opt^2,printf("%d
",last);
            fl=0;
        }
        opt^=last; l^=last; r^=last;
        if(opt==1) fl=1;
        else a[l]=r;
    }
    if(fl) printf("%d
",query(l,r));
}
/*
5 2 4
11 4 6 3 5
2 2 3
1 1 4
1 1 7
2 2 7


3 1 3
4 5 6
1 1 3
7 7 2
4 4 6

3 2 3
4 5 7
1 1 3
5 4 2
6 6 4

5 2 4
3 2 6 7 5
1 1 4
2 2 4
1 1 4
1 1 5


*/

免责声明:文章转载自《暑假考试题3:jigsaw 黄金拼图(乱搞)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇五点三次平缓滤波.Net Core 认证系统之基于Identity Server4 Token的JwtToken认证源码解析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

com.aliyun.openservices.shade.com.alibaba.fastjson.JSONException: exepct '[', but {, pos 1, line 1, column 2

错误报告的原因:您放置了一个非List对象,但希望从packagetest中取出List对象;导入java.text。SimpleDateFormat;导入java.util。阵列列表;导入java.util。日期导入java.util。列表importcom.alibaba.fastjson。JSON;导入com.alibaba.fastj...

LaTex学习笔记(1)——LaTeX文档插入图片的几种常用方法

2,插入bmp图片还没有找到直接插入bmp图片的方法。用gimp或fastoneimageviewer,将jpg质量选为最高,转换之后得到的图片质量较好。3,同时插入jpg和eps图片插入的命令不变。编译时使用Latex,dvi2pdf,两种格式的图片都可以显示。...

如何根据角色批量激活SAP Fiori服务

我们知道Fiori的角色不同于ERP,即使您的帐户具有SAP_ALL权限,但当您打开Fiori时,它也是空的:只有在您将Fiori所需的角色添加到帐户并激活相关服务时,才能使用Fioriapp。否则,打开Fioriapps将报告错误。可以通过GUI事务代码找到特定错误:/n/iwfnd/error_Log以查看特定原因。...

java 服务接口API限流 Rate Limit

服务接口的流量控制策略:分流、降级、流量限制等。2)使用Reids的列表结构,而不是incr命令1FUNCTIONLIMIT_API_CALLL2current=LLEN3IFcurrent˃10THEN4ERROR“toomanyrequestsperssecond”5ELSE6IFEXIST==FALSE7MULTI8RPUSH9EXPIRE10EXEC...

Java 安全之:csrf攻击总结

最近,我在维护一些旧项目。在调试期间,我发现请求被反复拒绝。我仔细查看了项目的源代码,发现存在csrftoken验证。我借此机会了解了csrf攻击,并将其总结成一篇论文。受攻击的网站无法阻止攻击。在整个过程中,攻击者无法获取受害者的登录凭据,只能“冒充”。CSRF攻击成功,因为服务器将攻击者发送的请求误认为是用户的请求。服务器通过验证请求是否携带正确的令牌来...

oracle报ORA-08103: 对象不再存在错误

今天,在导入数据时,数据库多次抛出异常。最常见的原因是同时操作。有人截断了表,然后将其放入选择表中。在群里发布错误,有人立刻出来认出他,说他正在整理表格……如果不是因为这个原因,百度也给出了其他尝试的计划:再次执行;查询时添加架构。...