1. 程式人生 > >初賽練習: 讀程式寫結果 以及 完善程式 (原創,如有雷同純屬巧合)

初賽練習: 讀程式寫結果 以及 完善程式 (原創,如有雷同純屬巧合)

文章目錄

T1

#include<bits/stdc++.h>
//Ithea Myse Valgulious using namespace std; int gcd(int a,int b){ return b?gcd(b,a%b):a; } int main(){ int i,j,n,k,x,cnt=0; scanf("%d%d",&n,&k); for (i=1;i<=n;++i) { cin>>x; if (x>k) cnt+=gcd(x,k); } cout<<cnt<<endl; } 輸入: 7 2 1 5 2 3 4 6 8

T2

#include
<bits/stdc++.h>
//Ithea Myse Valgulious using namespace std; int main(){ int i,j,k; string s; cin>>s; int ans=0; for (i=0;i<s.size();++i) for (j=i+1;j<s.size();++j) for (k=j+1;k<s.size();++k) if (s[i]=='Q'&&s[j]=='A'&&s[k]=='Q') ans++
; cout<<ans<<endl; } 輸入1: QQQAAAQQQ 輸入2: QAQAQAQAQ

T3

#include<bits/stdc++.h> //Ithea Myse Valgulious
using namespace std;
int dp[10505];
int main(){
  int i,j,n,a[105];
  scanf("%d",&n);
  for (i=1;i<=n;i++)
    scanf("%d",&a[i]),dp[a[i]]++;
  sort(a+1,a+n+1);
  for (i=1;i<=n;i++) 
    for (j=1;j<=n;j++)
      dp[i]+=dp[a[j]];
  for (i=1;i<=n;++i)
    cout<<dp[i]<<" ";
}
輸入:
5
5 1 4 3 2

T4

#include<bits/stdc++.h> //Ithea Myse Valgulious
using namespace std;
const int mulu=2e7;
typedef int fuko[mulu|10];
fuko p,pr;

void gpr(int n){
  int i,j;
  for (i=2;i<=n;++i) {
    if (!p[i]) p[i]=pr[++*pr]=i;
    for (j=1;j<=*pr;j++) {
      if (pr[j]*i>n) break;
      p[pr[j]*i]=pr[j];
	  if (i%pr[j]==0) break; 
	}
  }
}

int main(){
  gpr(mulu);
  int i,n;
  scanf("%d",&n);
  printf("%d=",n);
  for (;n>1;n/=p[n]) {
    printf("%d",p[n]);
    if (n^p[n]) printf("*"); 
  }
}
輸入1:
18
輸入2:
1001
輸入3:
30031
輸入4:
19260817

T5

#include<bits/stdc++.h> //Ithea Myse Valgulious
using namespace std;
typedef long long ll;
const int yuzu=1e5,mod=1e9+7;
typedef ll fuko[yuzu|10];
fuko jic,inv;

ll kasumi(ll a,ll b=mod-2){
  ll s=1;
  for (;b;b>>=1,a=a*a%mod) if (b&1) s=s*a%mod;
  return s;
}

int main(){
  int i,n;
  scanf("%d",&n);
  jic[0]=1;
  for (i=1;i<=yuzu;i++) jic[i]=jic[i-1]*i%mod;
  inv[yuzu]=kasumi(jic[yuzu]);
  for (i=yuzu-1;~i;--i) inv[i]=inv[i+1]*(i+1)%mod;
  printf("%lld\n",jic[n<<1]*inv[n]%mod*inv[n]%mod*kasumi(n+1)%mod);
}
輸入1:
5
輸入2:
6

T6

給出一個序列.你有兩種操作:

C l r v: 將區間 [ l , r ] [l,r] 內的所有數加上 v v .
Q l r. 詢問 [ l , r ] [l,r] 區間的和.

提示: 線段樹維護區間和.如果接下來的線段樹寫法和你稍稍有點不同,請諒解.

#include<bits/stdc++.h> //Ithea Myse Valgulious
using namespace std;
typedef long long ll;
const int yuzu=1e5;
typedef ll karen[yuzu<<2|13];
int n,q;

struct segtree {
  #define le rt<<1
  #define ri le|1
  #define ls le,l,mid
  #define rs ri,mid+1,r
  karen val,lazy;
  void build(int rt=1,int l=1,int r=n){
    if (l==r) {
      scanf("%lld",&val[rt]);
      return;
    } else {
	  int mid=l+r>>1;
	  build(ls),build(rs);
	  val[rt]=val[le]+val[ri];  
	}
  }
  void push_down(int rt,int l,int r){
    if (lazy[rt]){
      int mid=l+r>>1;
      lazy[le]+=lazy[rt],lazy[ri]+=lazy[rt];
      ______(1)_______;
      val[ri]+=(r-mid)*lazy[rt];
      lazy[rt]=0;
	}  
  }
  void update(int ql,int qr,int v,int rt=1,int l=1,int r=n){
    if (ql>r||qr<l) return;
    if (ql<=l&&qr>=r) {
      val[rt]+=(r-l+1)*v;
      lazy[rt]+=v;
	} else {
	  int mid=l+r>>1;
	  push_down(rt,l,r);
	  update(ql,qr,v,ls),update(ql,qr,v,rs);
	  ______(2)______;
	}
  }
  ll query(int ql,int qr,int rt=1,int l=1,int r=n){
    if (ql>r||qr<l) return ______(3)______;
    if (ql<=l&&qr>=r) return val[rt];
    int mid=l+r>>1;
    ______(4)_______;
    return query(ql,qr,ls)+query(ql,qr,rs);
  }
}my_;

int main(){
  scanf("%d%d",&n,&q);
  _____(5)______;
  for (;q--;) {
    char c=getchar();
    for (;isspace(c);) c=getchar();
    int l,r,v;
    scanf("%d%d",&l,&r);
    switch(c) { 
      case 'C': scanf("%d",&v),my_.update(l,r,v); break;
      case 'Q': printf("%lld\n",my_.query(l,r)); break;
	}
  }
}

T7

t a r j a n . tarjan求最近公共祖先.
給出一棵 n n 個點的樹和 m m 組詢問,每次詢問 u , v u,v 兩個點的最近公共祖先.
思想:把詢問離線,和詢問的編號放在一起,遍歷到某一個點的時候把它的詢問遍歷一遍,如果已經訪問過,此時它在並查集中的父親就是它們倆的最近公共祖先.

#include<bits/stdc++.h> //Ithea Myse Valgulious
using namespace std;
const int yuzu=5e5;
typedef int fuko[yuzu|10];

namespace dsu {
  fuko fa;
  void init(int n) { // 並查集初始化
    for (int i=1; i<=n; ++i) fa[i]=i;
  }
  int find(int x) { //尋找父親
    return fa[x]^x?_____(1)_____:x;
  }
  int mg(int u,int v) { // 合併兩個元素 (本題中無用)
    int fu=find(u),fv=find(v);
    return fu^fv?fa[fu]=fv,1:0;
  }
} using dsu::find;
/*並查集,封裝在namespace中.*/
typedef pair<int,int> pii;  // pair 的first儲存詢問的對應節點,second儲存詢問編號.
vector<int> lj[yuzu|10]; // 這棵樹的vector
vector<pii> query[yuzu|10]; // 詢問的vector
fuko ans,vis; // ans陣列和vis陣列.

void dfs(int u,int f) {
  vis[u]=1;
  for (pii x:query[u]) 
    if (vis[x.first]) 
      ______(2)______;
  for (int v:lj[u]) if (v^f) 
    dfs(v,u),_____(3)_____;
}

int main() {
  int i,n,m,rt;
  scanf("%d%d%d",&n,&m,&rt);
  /*rt表示這棵樹的根.*/
  ______(4)______;
  for (i=1;i<n;++i) {
    int u,v; 
	scanf("%d%d",&u,&v);
    lj[u].push_back(v);
    lj[v].push_back(u);
  }
  for (i=1;i<=m;++i) {
    int u,v;
    scanf("%d%d",&u,&v);
    query[u].push_back(pii(v,i));
    ______(5)______;
  } 
  dfs(rt,0);
  for (i=1;i<=m;++i) printf("%d\n",ans[i]);
}

T8

#include<bits/stdc++.h> //Ithea Myse Valgulious
using namespace std;
typedef long long ll;
ll dp[25][16][2][2]; int bit[25],p;

ll 
            
           

相關推薦

初賽練習: 程式結果 以及 完善程式 (原創,雷同純屬巧合)

文章目錄 T1 T2 T3 T4 T5 T6 T7 T8 T9 T10 T11 T12 T13 解析 T1 T

NOIP2016提高組初賽(2)四、程序結果3、求最長回文子序列

所有 並且 names mes font esp mic abcd 大小 #include <iostream> using namespace std; int lps(string seq, int i, int j) { int len1, len2;

演算法之“try-catch-finally-看程式結果

程式碼: public calss Test{ public static void main(String[] args){ try{ test(new int[]{0,1,2,3,4,5,6}); }cat

NOIP2016提高組初賽(2)四、閱讀程序結果2、

cal 當前 閱讀 輸入 自己 字符 細節 一是 表示 #include <iostream> using namespace std; int main() { char a[100][100], b[100][100]; string c[100]; s

Mycat分離以及拆庫拆表綜合實驗1:主從復制與多源復制

mycat mysql 讀寫分離 拆庫拆表 主從復制 數據規劃: Haproxy 集群 haproxy01 node127 192.168.31.127 haproxy02 node128 192.168.31.128 Mycat集群 mycat01 node119 192.168.31.

Mycat分離以及拆庫拆表綜合實驗2:部署配置mycat分離與拆庫拆表

mycat mysql 讀寫分離 拆庫拆表 部署 mycat mycat基於java運行,檢查java版本 [root@node119 ~]# java -version openjdk version "1.8.0_171" OpenJDK Runtime Environment (buil

鳳姐接受采訪以及自己的詩

你們 藍色 以及 AC 讓我 mod 空間 CA 朦朧 這個視頻不全,上傳的只是整個視頻中的一部分,把能看到的這部分整理成文字版的了。 由於沒有太多時間校正,所以錯誤之處還請見諒。另外為了簡便,正文中H代指主持人,G代指鳳姐。 正文如下:

Python學習筆記系列——檔案以及敏感詞過濾器的實現

一、讀檔案 #開啟檔案,傳入檔名和識別符號,r代表讀 f= open('\\Users\ZC\Desktop\zc.txt','r') #呼叫read方法一次性讀取檔案的全部內容,存入記憶體,用str物件表示 print(f.read()) f.close() #使用with無論程式是否

mongodb 分離以及java端

mongod.exe --bind_ip 192.168.1.202 --port 50001 --logpath E:\MongoDB\logs\log.txt --logappend --dbpath E:\MongoDB\data\db --replSet zhang

redis配置分離以及利用哨兵sentinel進行自動主從切換

redis利用哨兵(sentinel)進行主從切換,斷斷續續,自己終於通過配置驗證了一下該功能,其中遇到過一些的問題,也是耗費了大量的時間才解決,接下來分享下配置的過程以及遇到的問題和解決方法。希望對各位有所幫助。 首先說一下實驗環境:

redis主從複製,分離以及哨兵的配置

1.Redis主從配置 1.1:安裝redis  具體教程可以看我安裝redis-cluster部落格中的內容,這裡就不再重寫一遍了。 1.2:在/usr/local/目錄下建立redis-jiqun資料夾 mkdir /usr/local/redis-jiqun 1.3

Gtid+MGR+atlas分離以及負載均衡高可用架構

MySQL5.7.24 Gtid+MGR+atlas讀寫分離以及負載均衡高可用架構 一.伺服器環境介紹: 騰訊雲的雲主機安裝360開源的mysql中間鍵Atlas騰訊雲機器的外網ip:119.29.97.131滄州233測試物理機器的外網ip192.168.1.233(安全起見故意寫成內網的ip,其實是外

微信小程式(2)-小程式資訊完善以及開發前準備,程式碼稽核與釋出

1.完成註冊後,在微信公眾平臺官網首頁(mp.weixin.qq.com)的登入藉口直接登入 2.完善小程式資訊(完成註冊後,微信小程式資訊完善步驟和開發可同步進行) *選擇對公打款的使用者,完成匯款後,可以補充小程式名稱資訊,上傳小程式影象,填寫小程式介紹並且確定小程式服

STM32利用SPISD卡的程式詳解

SD卡的讀寫驅動程式是運用FATFS的基礎,學了FATFS就可以在SD卡上建立資料夾及檔案了。我們先從main檔案瞭解一下程式的執行流程int main(void) { u16 i; USART1_Config(); for(i=0;i<1536;i++) send_data[

Linux環境下mysql分離以及主從配置(不錯可以的)

記下File及Position下的值。以備在配置從伺服器時使用。 注:File:當前binlog的檔名,每重啟一次mysql,就會生成一個新binlog檔案       Position:當前binlog的指標位置 三、從伺服器配置 1、配置mysql.cnf # vi /etc/my.cnf (1)修改

使用mycat實現mysql分離以及主備自動切換模式

一:軟體環境 Window7 Mycat-server1.6 JDK1.8 Mysql5.62臺 二:讀寫分離的好處 增加了冗餘(備份資料)。 讀寫分開,減輕機器壓力,提高資料庫併發。 Mycat

C函式不return以及呼叫無參函式時傳參會出現什麼結果

1. 問題描述   偶然間重新拿起了三年前的C語言,遇到了以前沒有遇到過的問題: 1. C語言中普通函式聲明瞭返回型別但是不用return返回結果,也能夠編譯通過,如下: #include <stdio.h> int test1(int a

練習python了一個四則運算程式,支援乘方和“.3"這種格式

#!/usr/bin/python #coding=utf-8 # 本程式由使用者輸入一個表示式字串,然後計算這個表示式的值 # 表示式是一個四則運算表示式,可以包含^操作符# 注意:乘方用^運算子,支援".3"這種表示小數的形式。負數需要用括號擴起來 # 思路:利用棧的方

硬體I2C(TWI)PCF8563和24CXX程式

//ICC-AVR application builder : 2010-3-5 13:51:50 // Target : M88 // Crystal: 8.0000Mhz #include <iom88v.h> #include <macro

VBS檔案以及OpenTextFile方法

檔案的建立: FSO 讓你可以用現存在的文字工作,也可以讓你自己建立指令碼。為了建立一個新的文字檔案,簡單的建立一個 FSO 物件,然後呼叫 CreateTextFile 方法,輸入完整的檔案路徑資訊作為這個方法的引數 例如:(在c:\windows資料夾建立一個xxwl.ini檔案) Set obj