高一上十一月下旬日记

11.21

闲话

  • 侯操时又被通知加圈了;早读时 \(huge\) 说让我们注意原文、注释、赏析的理解背诵,要看清楚再读,他上次见有个人背《兰亭集序》自己背错了都不知道还搁那里背呢。
  • 临下早读时 \(huge\) 说一会儿 \(HS,FY\) 高一的会有人来我们机房一起集训,让我们把空位上的东西都收拾收拾。
  • 上午 \(7:30 \sim 12:00\) 打 accoders NOI 的模拟赛。
  • 下午放 \(huge\) 的每日一歌《七里香》,由 @wkh2008@wang54321 “激情”演唱;然后听多校讲题,讲完题就去上体育课了。回来后 \(huge\) 说明天多校的安排是晚上讲 noip杂题选讲 ,但我们明天还是得打学校 \(OJ\) 的模拟赛,让我们自己抽时间做。
  • \(huge\) 给今天新来的人讲解了下时间安排。
  • 吃晚饭前 \(huge\) 貌似给没关显示器的电脑关机了。回来后 \(huge\) 又专门强调了下这个东西,说离开电脑桌时建议把电脑关机,但我们只关显示器也行。
  • 晚上 \(huge\) 说以后牛奶、酸奶之类的东西也别往机房带了,估计是看见我塞到两台电脑显示器中间的酸奶了。

做题纪要

P509. 图 (a)

luogu P8890 [入门赛 #7] 打 ACM 最快乐的就是滚榜读队名了 (Hard Version)

  • 多倍经验: luogu B3692 [语言月赛202212] 打 ACM 最快乐的就是滚榜读队名了(Easy Version)

  • 模拟。

    点击查看代码
    struct submit
    {
    	int tim,id,state,problem;
    	bool operator < (const submit &another) const
    	{
    		return (problem==another.problem)?id<another.id:problem<another.problem;
    	}
    };
    struct team
    {
    	int acsum,penalty,order,cnt[27];
    	string name;
    	deque<submit>roll;
    	bool operator < (const team &another) const
    	{
    		if(acsum!=another.acsum)
    		{
    			return acsum>another.acsum;
    		}
    		return (penalty==another.penalty)?order<another.order:penalty<another.penalty;
    	}
    	bool operator > (const team &another) const
    	{
    		if(acsum!=another.acsum)
    		{
    			return acsum>another.acsum;
    		}
    		return (penalty==another.penalty)?order<another.order:penalty<another.penalty;
    	}
    }e[200010],tmp;
    unordered_map<string,int>f;
    priority_queue<team>q;
    int get_tim()
    {
    	int x,y,z;
    	char pd;
    	cin>>x>>pd>>y>>pd>>z;
    	return x*3600+y*60+z;
    }
    int get_problem(char x)
    {
    	return x-'A'+1;
    }
    void work(team &x,int tim,int state,int problem)
    {
    	if(x.cnt[problem]!=-1)
    	{
    		if(state==1)
    		{
    			x.acsum++;
    			x.penalty+=x.cnt[problem]*20+tim;
    			x.cnt[problem]=-1;
    		}
    		else
    		{
    			x.cnt[problem]++;
    		}
    	}
    }
    void read(int &cnt,int id)
    {
    	char c;
    	string name,pd;
    	int tim=get_tim();
    	cin>>c>>name;
    	getline(cin,pd);
    	int state=(pd[1]=='A');
    	int problem=get_problem(c);
    	if(f.find(name)==f.end())
    	{
    		cnt++;
    		f[name]=cnt;
    		e[f[name]].order=cnt;
    		e[f[name]].name=name;
    	}
    	if(tim<=14400)
    	{
    		work(e[f[name]],tim/60,state,problem);
    	}
    	else
    	{
    		e[f[name]].roll.push_back((submit){tim/60,id,state,problem});
    	}
    }
    int main()
    {
    // #define Isaac
    #ifdef Isaac
    	freopen("in.in","r",stdin);
    	freopen("out.out","w",stdout);
    #endif
    	int n,m,k,cnt=0,i;
    	cin>>n>>m>>k;
    	for(i=1;i<=k;i++)
    	{
    		read(cnt,i);
    	}
    	for(i=1;i<=cnt;i++)
    	{
    		sort(e[i].roll.begin(),e[i].roll.end());
    		q.push(e[i]);
    	}
    	while(q.empty()==0)
    	{
    		tmp=q.top();
    		q.pop();
    		cout<<tmp.name<<endl;
    		if(q.empty()==0)
    		{
    			while(tmp.roll.empty()==0&&q.top()>tmp)
    			{
    				work(tmp,tmp.roll.front().tim,tmp.roll.front().state,tmp.roll.front().problem);
    				tmp.roll.pop_front();
    			}
    			if(tmp>q.top())
    			{
    				q.push(tmp);
    			}
    		}
    	}
    	return 0;
    }
    

P510. 序列 (b)

P512. 字符串 (d)

11.22

闲话

  • 上午 \(7:30 \sim 12:00\) 打学校 \(OJ\) 的模拟赛。模拟赛结束后 \(huge\) 说这次模拟赛成绩估计会很接近 \(NOIP\) 的得分情况, \(T1,T2\) 还是建议切掉的,像这种写了八九十分的自己找找原因,要不然损失太大了
  • 下午放 \(huge\) 的每日一歌;然后讲题。

做题纪要

HZTG5683. 镜的绮想 (mirror)

HZTG5684. 万物有灵 (animism)

HZTG5685. 白石溪 (creek)

BZOJ3786 星系探索

HZTG5686. 上山岗 (uphill)

11.23

闲话

做题纪要

luogu P3345 [ZJOI2015] 幻想乡战略游戏

luogu P5311 [Ynoi2011] 成都七中

posted @ 2024-11-20 21:22  hzoi_Shadow  阅读(28)  评论(0编辑  收藏  举报
扩大
缩小