Contest

A. greet

map,完了。

B. gift

map,完了。

C. [Usaco2008 Nov Gold] 安慰奶牛

最小生成树。新边权设为原边权的两倍,再加上两端点的点权。完了……

前三题真是增添我的自信心!(一遍过!当然前三题我都写过原题了……真实水平体现不出来。)

D. [NOIP2009TG] 最优贸易

SPFA 双向广搜。(还没搞明白,之后再更)

贴一发 90 分卡时限代码(说不定再乱搞一下就满分了……):

#include <cstdio>

int n, m, p[100005];
int head[100005], nex[1000006], to[1000006];
int dp[100005], v[100005]; inline int read() {
int res=0; char ch=getchar(); while (ch<'0'||ch>'9') ch=getchar();
while (ch>='0'&&ch<='9') res=res*10+ch-'0', ch=getchar();
return res;
}
inline int min(int x, int y) {return x>y?y:x; }
inline int max(int x, int y) {return x>y?x:y; } inline void add(int x, int y) {
nex[++head[0]]=head[x], head[x]=head[0], to[head[0]]=y;
} void dfs(int x, int fa, int mi) {
int flag=1;
mi=min(mi, p[x]); if (v[x]!=mi) v[x]=mi, flag=0;
int s=max(dp[fa], p[x]-mi); if (dp[x]<s) dp[x]=s, flag=0;
if (flag) return;
for (register int i=head[x]; i; i=nex[i]) dfs(to[i], x, mi);
} int main() {
n=read(), m=read();
for (register int i=1; i<=n; ++i) p[i]=read();
for (register int i=1, x, y, z; i<=m; ++i) {
scanf("%d%d%d", &x, &y, &z);
add(x, y); if (z>1) add(y, x);
}
dfs(1, 0, 0x3f3f3f3f);
printf("%d\n", dp[n]);
return 0;
}

最新文章

  1. enable feature AJAX of MOSS2007
  2. C/C++实践笔记 003
  3. java基础学习05(面向对象基础01--类实例分析)
  4. AngularJS(7)-表格
  5. [PHP]MemCached高级缓存
  6. hdu 2767 Proving Equivalences
  7. hdu 2769 uva 12169 Disgruntled Judge 拓展欧几里德
  8. 实施软件测试风险分析&amp;回归用例刷选
  9. linux下activemq安装与配置
  10. 6. Vulnerability scanners (漏洞扫描器 11个)
  11. Photoshop功能组成色彩快捷键
  12. 【Json】1、JSON 数据格式
  13. CentOS 7不能进入图形界面
  14. 网络通信协议之ICMP
  15. 认知计算 Cognitive Computing
  16. crontab定时任务-干货案例
  17. 20145307陈俊达_安卓逆向分析_dex2jar&amp;jd-gui的使用
  18. Beta阶段——第三篇 Scrum 冲刺博客
  19. MP3 Fuzz学习
  20. ipa 打包遇到的坑

热门文章

  1. 页面跳转(包括vue路由)
  2. SmokeTest测试流程
  3. BigDecimal保留小数处理
  4. JS中substring()的用法
  5. 20190814 On Java8 第三章 万物皆对象
  6. python字典、字符串(json串)、字节串之间的转化
  7. hive拉链表以及退链例子笔记
  8. Codeforces 1172B(组合数学)
  9. [NOIP2016]借教室
  10. XSLT学习(九)通过JavaScript转化xml