首页 > 其他分享 >洛谷内卷监视工具(升级版)

洛谷内卷监视工具(升级版)

时间:2023-11-07 22:13:21浏览次数:34  
标签:cnt 洛谷 ++ content userlist str var 内卷 升级版

较原版内卷监视工具,增加了一下功能:

  • 计分板(宏观掌控他人的卷题数量和难度分布)
  • 多次连续AC相同题目去重

可能会不定时更新

有什么建议可以提出

var userlist = 
["ricky_lin","Query_Failed",
"The_Last_Candy",
"Jeefy",
"Rairn",
"hfjh",
"fsfdgdg",
"aish"];<!--观察成员列表-->
var pages = 1;  <!-- 初始检查做题记录页数,建议设置为 1-2 -->
var cd = 10000; <!-- 自动检查每个人时间间隔,建议保持为 10000,以免 GG-->
var a = [[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0]];<!--各个难度的做题数量 有几个人就要复制几个[0,0,0,0,0,0,0,0]-->
var pre=[0,0,0,0,0,0,0,0];<!--上一个做的题 0的数量和人的数量要相等-->
var numcnt=[0,0,0,0,0,0,0,0];<!--做题数量统计 0的数量和人的数量要相等-->
var colors=['rgb(191, 191, 191)','rgb(254, 76, 97)','rgb(243, 156, 17)','rgb(255, 193, 22)','rgb(82, 196, 26)','rgb(52, 152, 219)','rgb(157, 61, 207)','rgb(14, 29, 105)'];
var name="灰红橙黄绿蓝紫黑";
var lst=Array();
var cnt=0;
function onSearch(obj)
{
    var storeId=document.getElementById('store');
    var gradeId=document.getElementByld('grade');
    var rowsLength=storeId.rows.length;
    var key=document.getElementById('key').value;
    for(var i=1;i < rowsLength;i++)
    {
        var searchText=storeId.rows[i].cells[0].innerHTML;
        if(key=="*"||searchText.match(key))
            storeId.rows[i].style.display='';
        else
            storeId.rows[i].style.display='none';
    }
};
str='<div><select onchange="onSearch()" name="key" id="key"><option value="*">*</option>';
for(var i=0;i < userlist.length;i++)
    str+='<option value="'+userlist[i]+'">'+userlist[i]+'</option>';
str+='</select></div><table id="grade" style="white-space: nowrap;"><thead><tr><th>用户</th><th>题目数量</th>'
for(var i=0; i < 8;i++)
    str+= '<th>' +"<a style='color:"+colors[i]+"'>"+ name[i] + '</a></th>';
str+='</tr></thead><tbody>';
str+='</tbody></table><table id="store" style="white-space: nowrap;"><tr><th>用户</th><th>题号</th><th>标题</th></tr></table>';
document.body.innerHTML = "<h1 style='text-align:center;color:red;font-family:Microsoft Yahei'>内卷监视工具(升级版)</h1>";
document.body.innerHTML += "<b style='text-align:center;'>author:<a href='https://www.luogu.com.cn/user/78206'>ricky_lin</a></b>";
document.body.innerHTML += "<b style='text-align:center;font-family:FangSong'>运筹首页之中,偷袭千里之外&#128517;</b><hr>" + str;
<!-- Output Emoji & Option -->
function PARSE(First=false)
{
    cnt=(cnt+1)%userlist.length;
    var user=userlist[cnt];
    var Pagenum=1;if(First)Pagenum=pages;
    for(;Pagenum>0;Pagenum--)
    {
        var httpRequest=new XMLHttpRequest();
        httpRequest.open('GET','https://www.luogu.com.cn/record/list?user='+user+'&status=12&page='+Pagenum,false);
        httpRequest.send();
        if(httpRequest.readyState==4&&httpRequest.status==200)
        {
            var content=httpRequest.responseText;
            var patten=/decodeURIComponent\(".*?"\)/;
            content=patten.exec(content)[0];
            content=content.substr(20,content.length-22);
            content=JSON.parse(decodeURIComponent(content));
            var prob,col,pid,title;
            for(var i=Math.min(content.currentData.records.result.length-1,19);i>=0;i--)
                if(content.currentData.records.result[i].status==12&&content.currentData.records.result[i].id>lst[cnt])
                {
                    prob=content.currentData.records.result[i].problem;
                    col=colors[prob.difficulty];
                    pid=prob.pid;
                    title=prob.title;
                    if(!First && pid != pre[cnt]){
                        document.getElementById('store').childNodes[0].innerHTML
                        +='<tr><td>'+user+'</td><td>'+pid+'</td><td>'+
                            "<a style='color:"+col+"' href='https://www.luogu.com.cn/problem/"+pid+"' target='_blank'>"
                        +title+"</a>"+'</td></tr>';
                        alert(user+" 刚刚卷了"+name[prob.difficulty]+"题 "+pid+" "+title);
                        ++numcnt[cnt];
                        ++a[cnt][prob.difficulty];
                    }
                    pre[cnt]=pid;
                    lst[cnt]=content.currentData.records.result[i].id
                }
        }
    }
    str = "<thead><tr><th>用户</th><th>题目数量</th>";
    for(var i=0; i < 8;i++)
        str+= '<th>' +"<a style='color:"+colors[i]+"'>"+ name[i] + '</a></th>';
    str+='</tr></thead><tbody>';
    for(var i=0;i < userlist.length;i++){
        str+='<tr><td>'+userlist[i]+'</td><td>'+numcnt[i]+'</td>';
        for(var j=0; j < 8;j++){
               str+='<td>'+a[i][j]+'</td>';
        }
        str+='</tr>';
    }
    document.getElementById('grade').childNodes[0].innerHTML=str;
}
for(var i=0;i < userlist.length;i++) lst[i]=0;
for(var i=0;i < userlist.length;i++)PARSE(true);
window.setInterval(PARSE,cd);

标签:cnt,洛谷,++,content,userlist,str,var,内卷,升级版
From: https://www.cnblogs.com/rickylin/p/tools_monitor-for-luogu.html

相关文章

  • [洛谷 P3481] [BZOJ1118] [POI2009] PRZ-Algorithm Speedup
    题目描述你需要计算一个函数\(F(x,y)\),其中\(x,y\)是两个正整数序列。boolF(std::vector<int>x,std::vector<int>y){if(W(x).size()!=W(y).size())returnfalse;if(W(x).size()==1)returntrue;returnF(p(x),p(y))&&F(s(x),s(y));}\(W......
  • 【洛谷 P1046】[NOIP2005 普及组] 陶陶摘苹果 题解(比较)
    [NOIP2005普及组]陶陶摘苹果题目描述陶陶家的院子里有一棵苹果树,每到秋天树上就会结出个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。现在已知个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的......
  • 【洛谷 P1909】[NOIP2016 普及组] 买铅笔 题解(打擂台法)
    [NOIP2016普及组]买铅笔题目背景NOIP2016普及组T1题目描述P老师需要去商店买支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起见,P老师决定只买同一种包装的铅笔。商店不允许将铅笔的包装......
  • 【LGR-161-Div.3】洛谷基础赛 #4 P9688 Colo.
    原题链接:P9688Colo.很显然,能够共存的颜色一定不会相交,所以可以记录每个颜色最左边的位置和最右边的位置,我们对于每个颜色只考虑,这个颜色左边的可以和这个颜色共存的额颜色用f[i][j]表示当前考虑i这种颜色,选i这种颜色,然后在i这种颜色之前(包括这种颜色)一共选了j种颜色的最大价值......
  • 【洛谷 P1085】[NOIP2004 普及组] 不高兴的津津 题解(打擂台法)
    [NOIP2004普及组]不高兴的津津题目描述津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因......
  • 洛谷P5707 【深基2.例12】上学迟到(Python 3)
    题。审题:1.yyy要花十分钟垃圾分类!不要忘了在总分钟数上加102.如果时或分为个位数,则需要用0在前补位 思路:先把总共需要的分钟数算出来,然后求时和分。如果时大于8,那么再补上24,用来使时间符合格式。 关键点:1.补位:print('%02d'%m),具体看这篇2.注意当分钟数恰好为60倍数的......
  • (C语言)1到50的阶乘之和列表,参考用,洛谷:P1009 [NOIP1998 普及组] 阶乘之和
    1到50列表,阶乘之和S=1!+2!+3!+⋯+n!(n≤50)1::12::33::94::335::1536::8737::59138::462339::40911310::403791311::4395471312::52295631313::674997711314::9392826831315::140160263631316::2232439252431317::37801182062031318::678038552634831319::12842......
  • 洛谷 P2290 [HNOI2004] 树的计数(Prufer序列,Cayley 公式)
    传送门解题思路关于Prufer序列的构造,见OI-wiki这里直接放结论:一个Prufer序列与一个无根树一一对应度数为\(d_i\)的节点在序列中出现了\(d_i-1\)次\(\sum(d_i-1)=n-2\)n个点的完全图的生成树有\(n^{n-2}\)种所以相当于n-2个数(有重复的)进行全排列,答案即为:\[\frac......
  • Redis队列升级版利用Spring项目BeanDefinition自动注入
    利用Redis实现队列先进先出队列:https://www.cnblogs.com/LiuFqiang/p/16366813.html延迟队列:https://www.cnblogs.com/LiuFqiang/p/16592522.html定长队列:https://www.cnblogs.com/LiuFqian/p/17372463.html在使用Redis做消息队列的时候,需要配置队列属性的bean,如果自己项目......
  • 洛谷P3522/POI2011 TEM-Temperature
    涉及知识点:单调队列、贪心、递推前言最近找了点单调队列的题练练手,就遇到这道题,本题对于单调队列弹队尾的时候有别于普通单调队列,一些题解并没有写的很清楚,因此写下这篇题解。题面Link你有一个长度为\(n\)的序列\(A\),告诉你序列中每一个数\(A_i\)的取值范围\(down_i\)......