1. 程式人生 > >NOIP2014提高組Day2

NOIP2014提高組Day2

NOIP2014Day2

一、無線網路發射器選址

資料:對於100%,矩陣大小129*129(0-128),n∈[1,20],d∈[1,20]

看完題後想到的是二維字首和,看完資料後發現沒有關係,暴力也可以過,直接129*129*n 就行了

二、尋找到路

資料:對於100%,n∈[0,1e4],m∈[0,2e5]

看完題後想暴力,不是很會。

但是看完條件後,發現條件1只要從終點反向走一遍,就可以把所有到不了的點全部標記掉。然後連著那些點的點也要標記掉,這樣剩下的點就都是出邊連著的點能通向終點了

這麼簡單的題就不用Code了。

無奈我把起點設為了1,只有20分……

三、解方程

資料:
這裡寫圖片描述

看完資料後暴力基本能過,但是a太大了,用上高精度直接算也就50分。

看式子發現只有+-*,那麼就模。可以得到一個等式

f(x)%P=f(x%P)%P

有了這個等式,那就很好求了。一邊讀入一邊模就行了。
注意模的時候要多弄幾個,一個可能會有問題。

Code:

#include<bits/stdc++.h>
#define Mod 1000000007
#define ll long long
using namespace std;
ll A[105];int B[1000005];
char str[100];
int main(){
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i=0;i<=n;i++){
        scanf
("%s",str); int len=strlen(str); int st=0;ll x=0; if(str[0]=='-')st=1; for(int j=st;j<len;j++)//邊讀邊模 x=(1LL)*(x*10+str[j]-'0')%Mod; if(st)A[i]=Mod-x;else A[i]=x; } int ans=0; for(int i=1;i<=m;i++){ int x=0,h1=1; for(int j=0;j<=n;j++){//對於每個m都求一遍
x=(1LL)*(x+h1*A[j])%Mod; h1=(1LL)*h1*i%Mod; } if(!x)B[++ans]=i; } printf("%d\n",ans); for(int i=1;i<=ans;i++)printf("%d\n",B[i]); return 0; }

但是這樣是n*m的,極限資料下是過不了的

還有一種方法,對於一個是x,如果x%P是可以的,那麼x也是可以的
那麼就只要求x%P的就可以了

相關推薦

NOIP2014提高-day2-2——尋找道路(。。。。這算什麼題呢。。?最短路?)

在有向圖G中,每條邊的長度均為1,現給定起點和終點,請你在圖中找一條從起點到終點的路徑,該路徑滿足以下條件: 1.路徑上的所有點的出邊所指向的點都直接或間接與終點連通。 2.在滿足條件1的情況下使路徑最短。 注意:圖G中可能存在重邊和自環,題目保證終點沒有出邊

NOIP2014提高Day2

NOIP2014Day2 一、無線網路發射器選址 資料:對於100%,矩陣大小129*129(0-128),n∈[1,20],d∈[1,20] 看完題後想到的是二維字首和,看完資料後發現沒有關係,暴力也可以過,直接129*129*n 就行了 二、尋找到路

NOIP2014提高DAY2題解

class my_block{   public:     //If you are tired of looking at ADs     //Maybe this will be helpful to you: AdBlock(廣告攔截)     void cnt_plus(

NOIP2014 提高 day2

T1 無線網路發射器選址一道很水的題,唯一需要注意的點就是判斷邊界,不然就會像我一樣只有10分#include<iostream> #include<cstdio> #include<algorithm> using namespace s

2015 Noip提高 Day2

code tran pla long subst transport upload sin space P2678 跳石頭 【題目背景】 一年一度的“跳石頭”比賽又要開始了! 【題目描述】 這項比賽將在一條筆直

2012Noip提高Day2 T3 疫情控制

std name head printf fin 一個空格 pre 控制 不同 題目描述 H 國有 n 個城市,這 n 個城市用 n-1 條雙向道路相互連通構成一棵樹,1 號城市是首都,也是樹中的根節點。 H 國的首都爆發了一種危害性極高的傳染病。當局為了控制疫情,不讓

【學術篇】luogu1351 [NOIP2014提高] 聯合權值

https mat 父親 ans 級別 pop isp etc 取模 一道提高組的題。。。。。 傳送門:題目在這裏。。。。 現在都懶得更自己的blog了,怕是太頹廢了_ (:з」∠) _ 好久沒做題了,手都生了。(好吧其實是做題方面手太生了) 這題我都不想講了,把代碼一貼就

NOIP2014 提高】生活大爆炸版石頭剪刀布

關系 LG vertica 爆炸 namespace -s sof OS Go Description 石頭剪刀布是常見的猜拳遊戲:石頭勝剪刀,剪刀勝布,布勝石頭。如果兩個人出拳一 樣,則不分勝負。在《生活大爆炸》第二季第 8 集中出現了一種石頭剪刀布的升級版遊戲。

【NOIP2016提高day2】蚯蚓

AC AS orm max 可能 printf display OS 例如 題目 本題中,我們將用符號 LcJ 表示對 c 向下取整,例如: L3.0J = L3.1J = L3.9J = 3 。 蛐蛐國最近蚯蚓成災了!隔壁跳蚤國的跳蚤也拿蚯蚓們沒辦法,蛐蛐國王只好去 請神

【NOIP2016提高day2】憤怒的小鳥

span math cst clas 解析式 ++ amp -- memset 分析 Kiana最近沈迷於一款神奇的遊戲無法自拔。 簡單來說,這款遊戲是在一個平面上進行的。 有一架彈弓位於 (0, 0) 處,每次Kiana可以用它向第一象限發射一只紅色的小鳥, 小鳥們的飛行

NOIp2014提高初賽錯題簡析

roi 全部 del 軟件 又是 http 排序 lock 最小值 總體分析 \(89pts\),粗略來看選擇題錯的比較多,\(-6pts\)。同時又是尿性的填空殺扣了\(5pts\)。 不過後面的兩大題全對了還是可喜可賀 錯題精析 單項選擇T8 編譯器的主要功能是( )

【NOIP2017提高 day2】寶藏

題目 題解 –這道題不是最小生成樹這道題不是最小生成樹這道題不是最小生成樹 因為修路的代價與它裡起點的距離有關,又因為最後的路徑一定組成了一棵樹 所以我們可以一層層的dp 設f[i][s]:到第i層時,已經連上的集合為s的最優解 轉移f[i][s|S]=min(f

【NOIP2017提高 day2】乳酪

題目 題解 –很簡單,就是n^2建圖,bfs一遍就好了,記得開longlong 程式碼 #include<iostream> #include<cstdio> #include<cstdlib> #include&l

NOIP2018提高Day2 解題報告

前言 關於\(NOIP2018\),詳見此部落格:NOIP2018學軍中學遊記(11.09~11.11)。 \(Day2\)的題目和\(Day1\)比起來,真的是難了很多啊。 \(T1\):旅行(點此看題面) 對於樹的情況,顯然可以把相鄰的點全部存下來,排序一遍後依次遍歷即可。 對於基環外向樹的

NOIP2014提高】尋找道路

題目背景 NOIP2014 提高組 Day2 試題。 題目描述 在有向圖 G 中,每條邊的長度均為 1,現給定起點和終點,請你在圖中找一條從起點到終點的路徑,該路徑滿足以下條件:  1.路徑上的所有點的出邊所指向的點都直接或間接與終點連通。  2.在滿足條件 1 的情況

p1428 [NOIP2011提高day2]-1-計算係數

題目 https://www.luogu.org/problemnew/show/P1313 程式碼 #include<bits/stdc++.h> using namespace std; const int mod=10007; const int _=150

[noip]2014複賽提高day2 無線網路發射器選址

本蒟蒻自己想的方法,非常好,哈哈哈哈哈哈哈  #include<iostream>//生死有命,富貴在天!! #include<cstdio> using namespace std; int d,n,x,y,k,s[10000][10000],x

NOIP2016提高DAY2題解

class my_block{   public:     //If you are tired of looking at ADs     //Maybe this will be helpful to you: AdBlock(廣告攔截)     void cnt_plus(

【NOIP2018 提高 day2 T1】旅行

題目 思路 這道題60%的資料還是容易做; 這要建圖的時候預處理一下,如何深搜就行了; 因為兩點之間有且只有一條路徑聯通; 因此選擇了了一條邊,就必須把這棵子樹走完; 所以我們每次都選擇節點最小的那子樹; 貪心就完事; 考慮100%,發現n<=5000可

2018 NOIP提高 Day2

現在T1都這麼難了?! 好久沒寫凸輪了,想了好久沒什麼好辦法。莽一波,暴力DFS刪邊,竟然沒超時。真是KISS(keep it simple && stupid) 注意:n==m時需要刪掉一條邊再處理 #include <iostream> #inclu