NOIP2014自测(晚自习两节+上午两节 共5个小时)

昨天刚刚考完试然后就翘晚自习跟今天上午两节课的语文和英语做做noip2014的题目。然后去评测了一番。首先day1day2的t1基本都是模拟,一看就出思路那种,直接ac掉。代码如下

day1t1:#include<iostream>
#define maxn 209
using namespace std;
int map[5][5] = 
{{0, 0, 1, 1, 0},
 {1, 0, 0, 1, 0},
  {0, 1, 0, 0, 1}, 
  {0, 0, 1, 0, 1}, 
  {1, 1, 0, 0, 0}};
int n,t1,t2;
int a[maxn], b[maxn];
int sum1,sum2;
int m1,m2; 
int main()
{  
    cin>>n>>t1>>t2;
    for(int i = 0; i < t1; i++) 
cin>>a[i];
    for(int i = 0; i < t2; i++)
    cin>>b[i];
    while(n--) 
{
        sum1+=map[a[m1]][b[m2]];
        sum2+=map[b[m2]][a[m1]];
        if((++m1) >= t1)
       m1-=t1;
        if((++m2) >= t2)
       m2-=t2;
    }
    cout<<sum1<<" "<<sum2<<endl;
    return 0;
}
用一个二维数组模拟这几种情况的得分。然后用思路论好了,比较简单。
day2t1:
这个题我真的非常怀疑是否为普及组的题,一个穷举模拟然后就过了。本以为要用贪心,我懒得找bug所以直接提交结果就过了。666mdzz。
代码:#include<iostream>
using namespace std;
int n,maxn,sum,d;
int x[22],y[22],s[22],f[130][130];
int main()
{
    cin>>d>>n;
    for (int i=0;i<n;i++)
    cin>>x[i]>>y[i]>>s[i];
    for (int i=0;i<129;i++)
     for (int j=0;j<129;j++)
       for (int k=0;k<n;k++)
        if (x[k]>=i-d && x[k]<=i+d && y[k]>=j-d && y[k]<=j+d)
      f[i][j]+=s[k];
    for (int i=0;i<129;i++)
      for (int j=0;j<129;j++)
            if (f[i][j]>maxn)
    maxn=f[i][j];
    
    for (int i=0;i<129;i++)
       for (int j=0;j<129;j++)
             if (f[i][j]==maxn)
   sum++;
    cout<<sum<<" "<<maxn<<endl;
    return 0;
}
day1t2:可以有点难度了,求联合全值,嗯,我看第一眼的时候是个图论的题,就是穷举点然后用几个算法优化一下,floyed应该能过3个点吧,dijstra能过7个吧。自己用笔算的复杂度。呵呵……。之后我就敲了dijstra代码然后硬生生的过了8个点。两个点tle。算了,不使spfa了,我就直接看题解了。结果发现这是一道大水题。水到无极限的数学题。妈的我就是大牛们口中的二逼青年。具体看题解-_-。然后找这他们的思路打了代码。嗯:卡时间了,一样的代码交了三次才ac。代码:
#include<iostream>
#define maxn 200001
using namespace std;
struct Edge
{
    int first;
int next;
}edge[maxn];
long long s[maxn];
int w[maxn];
int max1[maxn],max2[maxn];
void sphdehanshu(int x,int &max1,int  &max2)
{
    if(x>max1){max2=max1;max1=x;}
    else
    if(x>max2) max2=x;    
}
int n,sum1,sum2,first,next;
int main()
{
  cin>>n;
  for(int i=1;i<=n-1;i++) cin>>edge[i].first>>edge[i].next;
  for(int i=1;i<=n;i++) cin>>w[i];
  for(int i=1;i<=n-1;i++)
  {
   first=edge[i].first;
   next=edge[i].next;
   s[first]=s[first]+w[next];
   s[next]=s[next]+w[first];
   sphdehanshu(w[next],max1[first],max2[first]);
    sphdehanshu(w[first],max1[next],max2[next]);
  }
    for(int i=1;i<=n;i++) 
    if(max1[i]*max2[i]>sum1)sum1=max1[i]*max2[i];
     for(int i=1;i<=n-1;i++)
    {
        first=edge[i].first;
next=edge[i].next;
        sum2=(sum2+(s[first]-w[next])*w[next] % 10007) % 10007;
        sum2=(sum2+(s[next]-w[first])*w[first] % 10007) % 10007;
    }
    cout<<sum1<<" "<<sum2<<endl;
    return 0;
}
day2t2:这个题就是道图论呗,先倒着搜一遍去掉无关点,然后在用堆优化的dijstra或者bfs找最短路好了。然后呢本以为会ac结果输出的时候把endl打在前面,导致一片WA声。改过来ac掉。
代码:#include<cstdio>
#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
int n,m,x,y,s,t,sum,cnt;
int head[20010],nxt[500000],to[500000],dis[20010];
int nhead[20010],nnxt[500000],nto[500000],ans;
bool dvis[20010],fky[20010],vis[20010];
queue <int> dl,js;
void cr(int x,int y)
{
    sum++;
    nxt[sum] = head[x];
    head[x] = sum;
    to[sum] = y;
}
void ncr(int x,int y)
{
    cnt++;
    nnxt[cnt] = nhead[x];
    nhead[x] = cnt;
    nto[cnt] = y;
}
void dfs(int x)
{
    for (int tp = nhead[x];tp;tp = nnxt[tp])
    {
       if (!dvis[nto[tp]]) 
        {
            dvis[nto[tp]] = true;
            dfs(nto[tp]);
        }      
    }
}
void ndfs(int x)
 
{
    for (int tp = nhead[x];tp;tp = nnxt[tp])
    {
        if (!fky[nto[tp]])
        {
            fky[nto[tp]] = true;     
             ndfs(nto[tp]);
        }
    }
}
void bfs(int x)
{
    dl.push(x);
    js.push(0);
    vis[x] = true;
    while (!dl.empty())
    {
        if (dl.front() == t)
        {
        ans = js.front();     
            return;
        }
        for (int tp = head[dl.front()];tp;tp = nxt[tp])
        {
            if (!fky[to[tp]] && !vis[to[tp]])
            {      
                dl.push(to[tp]);
                js.push(js.front()+1);
                vis[to[tp]] = true;
            }
        }
        dl.pop();
        js.pop();
    }
}
int main()
{
    cin>>n>>m;
    for (int i = 1;i <= m;i++)
    {
        cin>>x>>y;
        cr(x,y);
        ncr(y,x);
    }
    cin>>s>>t;
    dvis[t] = true;
    dfs(t);
    for (int i = 1;i <= n;i++)
    {
        if (!dvis[i]) ndfs(i);
    }
    bfs(s);
    if (ans || s == t)
cout<<ans<<endl;
else
    cout<<"-1"<<endl;
    return 0;
}
 
day1t3:哦呵呵,直接模拟超时了,我感觉是这样的。于是写了个背包,嗯不错过了3个点。最后抄了题解把本题ac掉了。没想到它就是个背包题。早知道就认真写写了。
代码:#include <cstring>
#include <cstdio>
#include<iostream>
int n,m,k,i,j,s,u,v,ans;
int f[10002][1002];
int top[10002],bot[10002];
int up[10002],down[10002];
int min(int a,int b) {return(a<b?a:b);}
int main()
{
    scanf("%d%d%d",&n,&m,&k);
    for (i=0;i<n;++i)
        scanf("%d%d",&up[i],&down[i]);
    for (i=0;i<=n;++i) top[i]=m+1;
    for (i=1;i<=k;++i)
    {
        scanf("%d%d%d",&s,&u,&v);
        bot[s]=u;
        top[s]=v;
    }
    memset(f,0x3f,sizeof(f));
    for (i=1;i<=m;++i) f[0][i]=0;
    for (i=1;i<=n;++i)
    {
        for (j=1;j<=m;++j)
        {
            u=j-up[i-1];
            if (u>bot[i-1] && u<top[i-1]) f[i][j]=min(f[i-1][u]+1,f[i][j]);
            if (u>0) f[i][j]=min(f[i][u]+1,f[i][j]);
        }
        for (j=m;j>=m-up[i-1] && j>=1;--j)
        {
            f[i][m]=min(f[i][m],f[i][j]+1);
            if (j>bot[i-1] && j<top[i-1]) f[i][m]=min(f[i-1][j]+1,f[i][m]);
        }
        for (j=bot[i]+1;j<top[i];++j)
        {
            u=j+down[i-1];
            if (u>bot[i-1] && u<top[i-1])
            f[i][j]=min(f[i-1][u],f[i][j]);
        }
    }
    ans=0x3f3f3f3f;
    for (i=bot[n]+1;i<top[n];++i) ans=min(ans,f[n][i]);
    if (ans<0x3f3f3f3f) printf("1\n%d",ans);
    else
    {
        ans=k;
        for (i=n-1;i>=0;--i)
        {
            if (top[i]<=m)
            {
                ans--;
                for (j=bot[i]+1;j<top[i];++j)
                if (f[i][j]<0x3f3f3f3f)
                {
                    ++ans;
                    printf("0\n%d",ans);
                    return 0;
                }
            }
        }
        printf("0\n0");
    }
}
day2t3:解方程
比较呵呵了,看一眼没思路,嗯打样例数据。一片WA声想起。
看题解似乎是道数论的题目。去模……去***的。我数学抛物线还没好好学,跟我扯这些。。。
然后Candy?跟我说这道模拟会拿30分,高精50分。好吧。早知道我就做做了。
总的来说,第一遍ac的总分=100+100+80+30+0+0=310分
考试认真一点就再加上方正心态把最后一问写个模拟就可以 100+100+80+30+100+30=460分。
后悔也没用了,吃一斩长一智。

转载于:https://www.cnblogs.com/srpihot/p/6305469.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371639.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

您在eXo平台上的第一个Juzu Portlet

菊珠是佛教的佛珠。 一句话&#xff0c;我相信您已经学到了什么&#xff0c;印象深刻吗&#xff1f; 好的&#xff0c;我在这里不谈论佛教。 Juzu还是一个用于快速开发Portlet&#xff08;以及即将推出的独立应用程序&#xff09;的新框架。 您可以在Juzu网站上找到所需的所有…

Spring注入方式及注解配置

一&#xff1a;基于xml的DI&#xff08;Dependency Injection&#xff09; 注入类型&#xff1a; 定义学生Student实体类和小汽车Car实体类&#xff1a;进行封装和生成ToString(),并自定义属性Car Student 123456789101112131415161718192021222324252627282930313233343536373…

java 切面 不执行,解决springboot的aop切面不起作用问题(失效的排查)

检查下springboot的启动类是否开启扫描springbootapplicationcomponentscan(basepackages {"com.zhangpu.springboot"})另外springboot默认开启的enableaspectjautoproxy为true如果不放心可以增加&#xff1a;enableaspectjautoproxy(proxytargetclasstrue)第二种可…

修改readonly属性的值

一般情况下&#xff0c;readonly属性的值是无法修改的&#xff0c;但可以通过特殊方式修改。定义一个student的类&#xff0c;其中name属性为readonly类型的变量 interface JFStudent : NSObjectproperty(nonatomic,copy,readonly) NSString *hisName;property(nonatomic,copy)…

VisualVM:通过SSH监视远程JVM(是否为JMX)

VisualVM是用于监视JVM&#xff08;5.0&#xff09;的有关内存使用情况&#xff0c;线程&#xff0c;GC&#xff0c;MBeans等的出色工具。让我们看看如何通过SSH使用它来监视&#xff08;甚至使用JMX对其进行采样&#xff0c;对带有JMX的远程JVM进行监视&#xff09;它。 这篇文…

h5 php js实验总结,H5学习_番外篇_PHP数据库操作

1. 文件操作1.1 打开关闭文件fopen()resource fopen ( string filename, string mode [, bool use_include_path [, resource zcontext]] )?fopen()函数将resource绑定到一个流或句柄。绑定之后&#xff0c;脚本就可以通过句柄与此资源交互;例1:以只读方式打开一个位于本地服务…

ReactNative开发环境

此内容根据徐赢老师的文档整理后写处 原版地址&#xff1a;https://tuomaxu.gitbooks.io/reactnative/content/ ReactNative是跨平开发的解决方案&#xff0c;在开发平台的选择上&#xff0c;mac平台和win平台都可以。 所需要工具如下&#xff1a; 1&#xff0c;Nodejs环境 2&a…

Python自动化开发 - 字符串, 列表, 元组, 字典和和文件操作

一、字符串特性&#xff1a;字符串本身不可修改&#xff0c;除非字符串变量重新赋值。Python3中所有字符串都是Unicode字符串&#xff0c;支持中文。 >>> name "Jonathan" >>> name "Jonathan" "Ni" >>>print(na…

shiro java配置,InI 配置 - 跟我学 Apache Shiro_教程_Java开发社区

INI 配置之前章节我们已经接触过一些 INI 配置规则了&#xff0c;如果大家使用过如 Spring 之类的 IoC/DI 容器的话&#xff0c;Shiro 提供的 INI 配置也是非常类似的&#xff0c;即可以理解为是一个 IoC/DI 容器&#xff0c;但是区别在于它从一个根对象 securityManager 开始。…

在Spring容器外部连接对象依赖项

有几种有趣的方法可以设置在Spring容器外部实例化的对象的属性和依赖关系。 用例首先&#xff0c;为什么我们需要在Spring容器之外进行依赖注入–我知道三个用例&#xff0c;其中我实例化了Spring容器之外的对象并需要注入依赖。 首先考虑使用Spring TaskExecutor执行一系列任…

前端学习路线汇总

https://123.w3cschool.cn/plk2fihttps://www.w3cschool.cn/nodejs/nodejs-global-object.htmlnode.js转载于:https://www.cnblogs.com/sxz2008/p/7238773.html

MediaInfo源代码分析 1:整体结构

博客地址&#xff1a;http://blog.csdn.net/leixiaohua1020/article/details/12016231 MediaInfo源代码分析系列文章列表&#xff1a; MediaInfo源代码分析 1&#xff1a;整体结构MediaInfo源代码分析 2&#xff1a;API函数MediaInfo源代码分析 3&#xff1a;Open()函数MediaI…

测试RESTful服务的客户端

开发使用RESTful Web API的应用程序可能意味着开发服务器和客户端。 为服务器端编写集成测试可以像使用Arquillian来启动服务器一样容易&#xff0c;并且可以通过REST确保测试服务是否按预期工作。 问题是如何测试客户端。 在本文中&#xff0c;我们将了解如何使用模拟来测试客…

linux mysql误删,linux下MySQL安装与删除 (Ubuntu)

1、MySQL安装A)MySQL安装&#xff1a; sudo apt-get install mysql-server mysql-clientB)启动/停止MySQL服务&#xff1a;MySQL 在安装以后&#xff0c;MySQL 就已经启动&#xff1b;如果需要手动启动或停止则如下操作&#xff1a;手动启动服务&#xff1a; sudo start mysql手…

对多态的理解例子

public class A {public String show(D obj) {return ("A and D");}public String show(A obj) {return ("A and A");} }class B extends A{public String show(B obj){ //重载return ("B and B");}public String show(A obj){ //重写show(A obj…

【Java每日一题】20170120

20170119问题解析请点击今日问题下方的“【Java每日一题】20170120”查看&#xff08;问题解析在公众号首发&#xff0c;公众号ID&#xff1a;weknow619&#xff09; package Jan2017; import java.util.Arrays; import java.util.List; public class Ques0120 { publ…

使用NoSQL实现实体服务–第2部分:合同优先

现在该开始使用NoSQL项目对SOA实体服务进行编码了&#xff0c;并且正如我所承诺的&#xff0c;我将从Web服务的合同开始。 看一下本系列的第1部分 。 这种从Web服务合同定义开始的技术是面向服务的体系结构实现的“合同优先”方法的核心&#xff0c;并具有许多技术优势&#xf…

php hugepage,【原创】解决Redis启动报错:Transparent Huge Pages (THP) support enabled in your kernel...

问题背景Redis启动报错&#xff1a;WARNING you have Transparent Huge Pages (THP) support enabled in your kernel.This will create latency and memory usage issues with Redis.To fix this issue run the command echo never > /sys/kernel/mm/transparent_hugepage/…

hibernate cascade的真正含义

hibernate cascade 是 OneToOne OneToMany ManyToOne ManyToMany等注解的属性&#xff0c;表示级联操作。 /*** (Optional) The operations that must be cascaded to* the target of the association.** <p> By default no operations are cascaded.*/CascadeType[] cas…

射线碰撞检测

在我们的游戏开发过程中&#xff0c;有一个很重要的工作就是进行碰撞检测。例如在射击游戏中子弹是否击中敌人&#xff0c;在RPG游戏中是否捡到装备等等。在进行碰撞检测时&#xff0c;我们最常用的工具就是射线&#xff0c;Unity 3D的物理引擎也为我们提供了射线类以及相关的函…