IFROG线上赛做过的题目

#6

1068:

找规律

int main(){
    int t,n;
    cin>>t;
    while(t--){
        cin>>n;
        if(n%3==0)printf("%d\n",n/3);
        else printf("%d\n",n);
    }
}

1069

二维树状数组

int bit[1234][1234],n;
int cha(int x1,int y1,int d){
    for(int a=x1;a<=n+1;a+=(a&-a))
    for(int b=y1;b<=n+1;b+=(b&-b))bit[a][b]+=d;
}
int sum(int x,int y){
    int ans=0;
    for(int a=x;a>=1;a-=(a&-a))
    for(int b=y;b>=1;b-=(b&-b))ans+=bit[a][b];
    return ans;
}
void solve(){memset(bit,0,sizeof(bit));
    n=gi;int q=gi;
    for(int i=1;i<=q;i++){
        char s[3];
        scanf("%s",s);
        if(s[0]==‘Q‘){
            int x,y;
            x=gi;y=gi;
            printf("%d\n",sum(x,y));
        }
        if(s[0]==‘C‘){
            int x1,y1,x2,y2;
            x1=gi;y1=gi;x2=gi;y2=gi;
            cha(x2+1,y2+1,1);//puts("!");
            cha(x1,y1,1);//puts("!");
            cha(x1,y2+1,-1);//puts("!");
            cha(x2+1,y1,-1);//puts("!");
        }
    }
}
int main(){
    int t=gi;
    while(t--){

        solve();
        if(t)puts("");
    }
}

 

#7

1071

观察之后发现在前缀和意义下一次操作只会变换前缀和的顺序,不会产生或改变值出现的次数

int main(){
    int t=gi;
    while(t--){
        n=gi;
        s1[0]=s2[0]=0;
        for(int i=1;i<=n;i++)a[i]=gi,s1[i]=s1[i-1]+a[i];
        for(int i=1;i<=n;i++)b[i]=gi,s2[i]=s2[i-1]+b[i];
        sort(s1+1,s1+n+1);
        sort(s2+1,s2+n+1);
        string ans="Yes";
        for(int i=1;i<=n;i++){
            if(s1[i]!=s2[i]){
                ans="No";break;
            }
        }
        cout<<ans<<endl;
    }
}

1072

拿一个set一个vector暴力删除子树,由于出现过的结点最多n个,set操作不会超过n次,所以暴力删除

int t,cnt,dep[123456];
set<pair<int,int> >s;
vector<int>son[123456];
void dfs(int x){
    for(int i=0;i<son[x].size();i++){
        s.erase((make_pair(-dep[son[x][i]],son[x][i])));
        dfs(son[x][i]);
    }
    son[x].clear();
}
int main(){
    t=gi;int n=0;
    while(t--){
        for(int i=1;i<=n;i++)son[i].clear();
        n=gi;
        memset(dep,0,sizeof(dep));
        cnt=1;
        s.clear();
        s.insert(make_pair(-dep[1],1));
        for(int i=1;i<=n;i++){
            char ch=getchar();
            int x=gi;
            if(ch==‘+‘){
            ++cnt;
                if(s.find(make_pair(-dep[x],x))!=s.end()){
                    dep[cnt]=dep[x]+1;
                    son[x].push_back(cnt);
                    s.insert(make_pair(-dep[cnt],cnt));
                }
            }else{
                dfs(x);
                s.erase(make_pair(-dep[x],x));
            }
            cout<<s.begin()->second<<"\n";
        }
    }
    return 0;
}

1073

。。

int n,T,a[123456];
int ans[123456],_;
int main(){
    T=gi;
    while(T--){
        int n=gi;
        map<int,int>m;
        for(int i=1;i<=n;i++)a[i]=gi,m[a[i]]++;
        bool flag=1; _=0;
        for(map<int,int>::iterator it=m.begin();it!=m.end();*it++){
            if(it->second>1)flag=0,ans[++_]=it->first;
        }
        if(flag)puts("none");else{
            for(int i=1;i<_;i++)printf("%d ",ans[i]);
            printf("%d",ans[_]);
        puts("");
        }
    }
}

1074

能量项链。

int n,e[1234];
int f[1234][1234];
int main(){
    int T=gi;
    while(T--){
        n=gi;
        memset(f,0,sizeof(f));
        for(int i=1;i<=n;i++)e[i]=gi;
        e[0]=e[n+1]=1;
        for(int j=2;j<=n+1;j++)
            for(int i=j-1;i>=0;i--)
                for(int k=i;k<j;k++)
                    f[i][j]=max(f[i][k]+f[k+1][j]+e[i]*e[k+1]*e[j+1],f[i][j]);
        cout<<f[0][n]<<endl;
    }
}
时间: 2025-01-03 19:40:40

IFROG线上赛做过的题目的相关文章

“玲珑杯”线上赛 Round #17 河南专场

闲来无事呆在寝室打打题,没有想到还有中奖这种操作,超开心的 玲珑杯"线上赛 Round #17 河南专场 Start Time:2017-06-24 12:00:00 End Time:2017-06-24 14:30:00 Refresh Time:2017-06-24 14:48:00 Private A -- Sin your life Time Limit:1s Memory Limit:128MByte Submissions:529Solved:76 DESCRIPTION 给一个正

第二届“强网杯”全国网络安全挑战赛来袭——线上赛

为全面贯彻习主席关于网络安全和信息化工作的一系列重要指示精神,延揽储备锻炼网信领域优秀人才,提升国家网络空间安全能力水平,举办第二届"强网杯"全国网络安全挑战赛.该比赛是面向高等院校和国内信息安全企业的一次国家级网络安全赛事,旨在通过激烈的网络竞赛对抗,培养和提高国家网络安全保障能力和水平,发现网络安全领域优秀人才,提升全民网络空间的安全意识和能力水平. 比赛链接 官方比赛链接地址:https://www.ichunqiu.com/2018qwb?from=bkyl 比赛时间 线上赛报

2017CUIT校赛-线上赛

2017Pwnhub杯-CUIT校赛 这是CUIT第十三届校赛啦,也是我参加的第一次校赛. 在被虐到崩溃的过程中也学到了一些东西. 这次比赛是从5.27早上十点打到5.28晚上十点,共36小时,中间睡了五六个小时吧.(我还算是我们队休息时间比较长的了)|(?_?) |?_?) |_?) |?) | ) 这次我队总分1500,校内排名第六. 在下贡献了四道题目,总计450. MISC: 1 RE: 2 PWN: 1 杂项就不多说了,说一下RE和PWN吧. 先放官方给出的wp,我对题目不一样的看法会

ISCC 2018线上赛 writeup

今天有机会去ISCC2018参加了比赛,个人的感受是比赛题目整体难度不高,就是脑洞特别大,flag形式不明确,拿到flag后也要猜测flag格式,贼坑 废话不多说,以下是本人的解题思路 MISC 0x01 What is that? 下载附件得到图片 看图应该可以猜到flag在下面被截取了,所以我们去修改图片的高度 用十六进制打开图片 在图片的高度那里修改一下数值,我是把01 F4 改成 03 F4 ,高度该多少随意,能看到flag即可 再打开图片,出现flag 然后格式贼坑,根据多种尝试,最后

2018 ACM-ICPC 中国大学生程序设计竞赛线上赛 B. Goldbach-米勒拉宾素数判定(大素数)

若干年之前的一道题,当时能写出来还是超级开心的,虽然是个板子题.一直忘记写博客,备忘一下. 米勒拉判大素数,关于米勒拉宾是个什么东西,传送门了解一下:biubiubiu~ B. Goldbach 题目传送门 自己看题意吧,直接贴代码了. 代码: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<cstdlib> 6 #i

“玲珑杯”线上赛 Round #17 河南专场 B.震惊,99%+的中国人都会算错的问题

1138 - 震惊,99%+的中国人都会算错的问题 Time Limit:4s Memory Limit:128MByte Submissions:304Solved:84 DESCRIPTION 众所周知zhu是一个大厨,zhu一直有自己独特的咸鱼制作技巧.tang是一个咸鱼供应商,他告诉zhu在他那里面有NN条咸鱼(标号从1到N)可以被用来制作.每条咸鱼都有一个咸鱼值KiKi,初始时所有KiKi都是00.zhu是一个特别的人,他有MM个咸数(咸鱼数字), 对于每个咸数xx,他都会让所有满足标

2016/12/3-问鼎杯线上赛6-2逆向分析

这道题目的文件给我们的是一个压缩包a2ia8-6-2.rar,解压之后得到一个crackme.exe和readme.txt 打开readme.txt可以看到对我们目标的描述. 从这里我们知道,这个就是逆向当中很平常的求serial计算算法(或者更具提示暴力跑?这里我们分析来逆向算法), 并且我们也知道了8位name,还有4位不知道,得到name = "{hdu?b???0_}"但是我们可以根据序列号来计算出来. 拿到一个程序之后,首先使用PEID来查壳,这道题目没有壳,先运行一遍(这里

RCTF 2018线上赛 writeup

苦逼的RCTF,只进行了两天,刚好第二天是5.20,出去xxx了,没法打比赛,难受.比赛结束了,还不准继续提交flag进行正确校验了,更难受. 下面是本次ctf解题思路流程 后面我解出的题会陆续更新上来 MISC sign 下载附件,发现打不开,以兼容性.管理员权限等还是打不开 丢进winhex初步审视一下16进制没啥发现 用binwalk扫描一下,发现一张png 提取,但是提取不出来,转手动提取,得到图片 本子,铅笔,红酒杯. 通过红酒杯联想到linux wine,用wine打开,得到flag

河北省2019CTF线上赛部分题解

后期补充,写到哪算哪,不按顺序. 1.Doc什么鬼 基础题,Winhex下打开. 非常明显的zip文件头,将文件直接后缀改成zip. 提取Flag.xml并打开即可得到flag. 2.爱因斯坦 基础题,将misc2.jpg用binwalk打开,可以发现压缩包以及其中的flag.txt. 直接将图片后缀改成zip,需要密码. 用winhex查看16进制数据时发现好多0区域,其中有一段不被0包围的,是压缩包密码:this_is_not_password. 解压即可得到flag. 3.mimi 基础题