噩梦的回忆。。

上周日在机房打的模拟赛,结果十分惨烈,就最后一题yy出了正解结果玄学的只拿了80

考试结果:0+0+80=80

订正时对着T3打了2hours结果还是90

订正结果:100+100+90=290

我太弱了QAQ

T1 Luogu P5196 [USACO19JAN]Cow Poetry

题目链接

思路:dp+神奇的数学推导

快速幂一开始还写锅了,受到了ftq大佬的嘲笑

code

#include<bits/stdc++.h>
using namespace std;
const int MOD=1e9+7,MAXN=5000+10;
int f[5010][MAXN],s[MAXN],c[MAXN],g[MAXN],num[35],n,m,k;
long long ans,re=1;
long long pow(int b, int p) {
if (p == 0) {
return 1;
}
long long x = b;
long long ans = 1;
while (p > 0) {
if (p % 2 == 1) {
ans = ans * x % MOD;
}
x = x * x % MOD;
p = p >> 1;
}
return ans % MOD;
}
void debug()
{
for(int i=1;i<=5;++i){
cout<<f[k][i]<<" ";
}
cout<<endl;
for(int i=0;i<=5;++i){
cout<<num[i]<<" ";
}
cout<<endl;
}
signed main()
{
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
cin>>n>>m>>k;
for(int i=1;i<=n;++i){
cin>>s[i]>>c[i];
}
g[0]=1;
for(int i=1;i<=k;i++){
for(int j=1;j<=n;j++){
if(i-s[j]>=0){
(f[i][c[j]]+=g[i-s[j]])%=MOD;
(g[i]+=g[i-s[j]])%=MOD;
}
}
}
for(int i=1;i<=m;++i){
char ch;
cin>>ch;
num[ch-'A']++;
}
// debug();
for(int i=0;i<26;++i){
if(num[i]){
ans=0;
for(int j=1;j<=n;++j){
if(f[k][j]){
(ans+=pow(f[k][j],num[i]))%=MOD;
// cout<<ans<<endl; }
}
(re*=ans)%=MOD;
}
}
cout<<re<<endl;
return 0;
}

T2 Luogu P5200 [USACO19JAN]Sleepy Cow Sorting

题目链接

思路:神奇的推导+树状数组

code

#include<bits/stdc++.h>
using namespace std;
const int MAXN=1e5+10;
inline int lowbit(int x){return x&(-x);}
int ans[MAXN],num[MAXN],tree[MAXN],n,sum,k;
void add(int x)
{
for(int i=x;i<=n;i+=lowbit(i)){
tree[i]++;
}
}
int query(int x)
{
int re=0;
for(int i=x;i;i-=lowbit(i)){
re+=tree[i];
}
return re;
}
int main()
{
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
cin>>n;
for(int i=1;i<=n;++i){
cin>>num[i];
}
sum=n,k=0;
while(num[n-k]>num[n-k-1]){
add(num[n-k]);
sum--,k++;
}
add(num[n-k]);
sum--;
for(int i=1;i<=sum;++i){
add(num[i]);
ans[i]=sum-i+query(num[i]-1);
}
cout<<sum<<endl;
for(int i=1;i<=sum;++i){
cout<<ans[i]<<" ";
}
return 0;
}

T3 Luogu P5201 [USACO19JAN]Shortcut

思路:dij+最短路树

code

#include<bits/stdc++.h>
#define int long long
#define ll long long
using namespace std;
const int MAXN=1e5+10,INF=0x3f3f3f3f;
inline int read()
{
int s=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){
if(ch=='-')
f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9'){
s=s*10+ch-'0';
ch=getchar();
}
return s*f;
} struct NODE {
int first,second;
bool operator<(NODE b) const { return (b.first==first)?b.second<second:b.first < first; }
};
int cnt,Cnt,m,n,T;
int head[MAXN],Head[MAXN],from[MAXN],siz[MAXN],v[MAXN];
ll dist[MAXN],ans=0;
priority_queue <NODE > q;
bool vis[MAXN],vi[MAXN]; void debug()
{
puts("head Head from siz dist");
for(int i=1;i<=n;++i){
cout<<head[i]<<" "<<Head[i]<<" "<<from[i]<<" "<<siz[i]<<" "<<dist[i]<<endl;
}
} struct node{
int to,next,l;
}edge[MAXN];
void addedge(int x,int y,int l)
{
edge[++cnt].to=y;
edge[cnt].l=l;
edge[cnt].next=head[x];
head[x]=cnt;
} struct Node{
int to,next;
}Edge[MAXN];
void Addedge(int x,int y)
{
Edge[++Cnt].to=y;
Edge[Cnt].next=Head[x];
Head[x]=Cnt;
} void dij()
{
memset(dist,INF,sizeof(dist));
dist[1]=0;
NODE a;
a.first=0,a.second=1;
q.push(a);
while(!q.empty()){
NODE now=q.top();q.pop();
int x=now.second;
// if(vi[x])continue;
// vi[x]=1;
// cout<<x<<"while\n";
for(int i=head[x];i;i=edge[i].next){
// cout<<i<<"i\n";
int y=edge[i].to;
// cout<<y<<" y\n";
if(dist[x]+edge[i].l<dist[y]){
// cout<<y<<"y\n";
NODE aa;
aa.second=y,aa.first=dist[y];
dist[y]=dist[x]+edge[i].l;
from[y]=x;
// cout<<"to"<<y<<endl;
q.push(aa);
}
}
}
} void build()
{
for(int i=1;i<=n;++i){
Addedge(i,from[i]);
Addedge(from[i],i);
}
} int dfs(int x,int fa)
{
vis[x]=1;
siz[x]+=v[x];
for(int i=Head[x];i;i=Edge[i].next){
int y=Edge[i].to;
if(!vis[y]&&y!=fa){
siz[x]+=dfs(y,x);
}
}
return siz[x];
} signed main()
{
// freopen("test08.in","r",stdin);
// freopen("1.out","w",stdout);
cin>>n>>m>>T;
for(int i=1;i<=n;++i){
v[i]=read();
}
for(int i=1;i<=m;++i){
int x=read(),y=read(),t=read();
addedge(x,y,t);
addedge(y,x,t);
}
dij();
build();
dfs(1,0);
// debug();
for(int i=1;i<=n;++i){
ans=max(ans,siz[i]*(dist[i]-T));
}
cout<<ans<<endl;
return 0;
}

USACO19JAN Gold题解的更多相关文章

  1. [USACO19JAN]Shortcut题解

    本题算法:最短路树 这是个啥玩意呢,就是对于一个图,构造一棵树,使从源点开始的单源最短路径与原图一模一样.怎么做呢,跑一边Dijkstra,然后对于一个点u,枚举它的边,设当前的边为cur_edge, ...

  2. 1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列

    1702: [Usaco2007 Mar]Gold Balanced Lineup 平衡的队列 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 510  S ...

  3. Gold Balanced Lineup POJ - 3274

    Description Farmer John's N cows (1 ≤ N ≤ 100,000) share many similarities. In fact, FJ has been abl ...

  4. codevs 2602 最短路径问题——良心题解

    2602 最短路径问题 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 平面上有n个点(n<=100),每个点的坐标均在- ...

  5. LeetCode 1219. Path with Maximum Gold

    原题链接在这里:https://leetcode.com/problems/path-with-maximum-gold/ 题目: In a gold mine grid of size m * n, ...

  6. AC日记——楼房 codevs 2995

    2995 楼房  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 地平线(x轴)上有n个矩(lou ...

  7. AC日记——砍树 codevs 1388

    1388 砍树  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 伐木工人米尔科需要砍倒M米长的木 ...

  8. AC日记——蓬莱山辉夜 codevs 2830

    2830 蓬莱山辉夜  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 在幻想乡中,蓬莱山辉夜是月球 ...

  9. AC日记——二叉堆练习3 codevs 3110

    3110 二叉堆练习3  时间限制: 3 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 给定N(N≤500,000)和N个整 ...

随机推荐

  1. Thymeleaf入门与基础语法

    1.简介 Thymeleaf是用来开发Web和独立环境项目的现代服务器端Java模板引擎. Thymeleaf的主要目标是为您的开发工作流程带来优雅的自然模板 - HTML.可以在直接浏览器中正确显示 ...

  2. 程序员,你还不会合理选择Filter、Interceptor、Aspect?

    小伙伴们应该听说过过滤器.拦截器.切面,印象上都能够起到截断拦截的作用,在做一些业务需求时,不知道如何选择,今天老顾就来介绍一下他们之间的区别. 过滤器可以拦截到方法的请求和响应 (ServletRe ...

  3. 记录使用echarts的graph类型绘制流程图全过程(二)- 多层关系和圆形图片的设置

    本文主要记录在使用echarts的graph类型绘制流程图时候遇到的2个问题:对于圆形图片的剪切和多层关系的设置 图片的设置 如果用echarts默认的symbol参数来显示图片,会显示图片的原始状态 ...

  4. 基于bert的命名实体识别,pytorch实现,支持中文/英文【源学计划】

    声明:为了帮助初学者快速入门和上手,开始源学计划,即通过源代码进行学习.该计划收取少量费用,提供有质量保证的源码,以及详细的使用说明. 第一个项目是基于bert的命名实体识别(name entity ...

  5. 基于C# WinForms窗体——飞机大战

    原文:基于C# WinForms窗体——飞机大战 using System; using System.Collections.Generic; using System.ComponentModel ...

  6. wpf listview images

    <ListView x:Name="lv"> <ListView.ItemsPanel> <ItemsPanelTemplate> <St ...

  7. length()返回当前字符串的字符个数

    package seday01;/** * int length() * 返回当前字符串的字符个数 * @author xingsir * */public class LengthDemo { pu ...

  8. python网络爬虫进阶之HTTP原理,爬虫的基本原理,Cookies和代理介绍

    目录 一.HTTP基本原理 (一)URI和URL (二)超文本 (三)HTTP和HTTPS (四)HTTP请求过程 (五)请求 1.请求方法 2.请求的网址 3.请求头 4.请求体 (六)响应 1.响 ...

  9. SpringCloud Gateway拦截器遇到的小坑汇总

    很多朋友在使用SpringCloudGateway的时候可能都碰到过以下几个问题 SpringCloudGateway中如何读取Post请求体 private BodyInserter getBody ...

  10. Flask(Jinja2) 服务端模板注入漏洞(SSTI)

    flask Flask 是一个 web 框架.也就是说 Flask 为你提供工具,库和技术来允许你构建一个 web 应用程序.这个 wdb 应用程序可以使一些 web 页面.博客.wiki.基于 we ...